diff --git a/lib/detectmsk144.f90 b/lib/detectmsk144.f90
index 12941b387..80af965dd 100644
--- a/lib/detectmsk144.f90
+++ b/lib/detectmsk144.f90
@@ -1,4 +1,4 @@
-subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc)
+subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc,ntol)
   use timer_module, only: timer
 
   parameter (NSPM=864, NPTS=3*NSPM, MAXSTEPS=1700, NFFT=NSPM, MAXCAND=20)
diff --git a/lib/detectmsk32.f90 b/lib/detectmsk32.f90
index 9f9dbb66a..ae2c9f4c6 100644
--- a/lib/detectmsk32.f90
+++ b/lib/detectmsk32.f90
@@ -1,4 +1,4 @@
-subroutine detectmsk32(cbig,n,mycall,partnercall,lines,nmessages,nutc)
+subroutine detectmsk32(cbig,n,mycall,partnercall,lines,nmessages,nutc,ntol)
   use timer_module, only: timer
 
   parameter (NSPM=192, NPTS=3*NSPM, MAXSTEPS=7500, NFFT=3*NSPM, MAXCAND=40)
diff --git a/lib/fast_decode.f90 b/lib/fast_decode.f90
index 47e2521d7..b72d9c0de 100644
--- a/lib/fast_decode.f90
+++ b/lib/fast_decode.f90
@@ -1,8 +1,9 @@
-subroutine fast_decode(id2,narg,line,pchk_file,mycall_12,hiscall_12)
+subroutine fast_decode(id2,narg,bShMsgs,line,pchk_file,mycall_12,hiscall_12)
 
   parameter (NMAX=30*12000)
   integer*2 id2(NMAX)
   integer narg(0:14)
+  logical*1 bShMsgs
   real dat(30*12000)
   complex cdat(262145),cdat2(262145)
   real psavg(450)
@@ -37,7 +38,8 @@ subroutine fast_decode(id2,narg,line,pchk_file,mycall_12,hiscall_12)
      call jtmsk_decode(id2,narg,line)
      go to 900
   else if(nmode.eq.104) then
-     call msk144_decode(id2,ndat0,nutc,0,pchk_file,mycall,hiscall,line)
+     call msk144_decode(id2,ndat0,nutc,0,pchk_file,mycall,hiscall,bShMsgs,  &
+          ntol,line)
      go to 900
   endif
 
diff --git a/lib/msk144_decode.f90 b/lib/msk144_decode.f90
index 0b3f8459b..781f25cb2 100644
--- a/lib/msk144_decode.f90
+++ b/lib/msk144_decode.f90
@@ -1,4 +1,5 @@
-subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall,line)
+subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall,   &
+     bShMsgs,ntol,line)
 
 ! Calls the experimental decoder for MSK 72ms/16ms messages
 
@@ -11,6 +12,7 @@ subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall,line)
   character*80 line(100)               !Decodes passed back to caller
   character*512 pchk_file
   character*6 mycall,hiscall
+  logical*1 bShMsgs
 
   line(1:100)(1:1)=char(0)
 
@@ -30,15 +32,16 @@ subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall,line)
   n=log(float(npts))/log(2.0) + 1.0
   nfft=min(2**n,1024*1024)
   call analytic(d,npts,nfft,c)         !Convert to analytic signal and filter
-  call detectmsk144(c,npts,pchk_file,line,nline,nutc)
+  call detectmsk144(c,npts,pchk_file,line,nline,nutc,ntol)
   if( nprint .ne. 0 ) then
     do i=1,nline
       write(*,'(a80)') line(i)
     enddo 
   endif
 
-  if(nline .eq. 0) then
-    call detectmsk32(c,npts,mycall,hiscall,line,nline,nutc)
+
+  if(nline.eq.0 .and. bShMsgs) then
+    call detectmsk32(c,npts,mycall,hiscall,line,nline,nutc,ntol)
     if( nprint .ne. 0 ) then
       do i=1,nline
         write(*,'(a80)') line(i)
diff --git a/lib/qra64a.f90 b/lib/qra64a.f90
index 7b31df907..e378161df 100644
--- a/lib/qra64a.f90
+++ b/lib/qra64a.f90
@@ -4,7 +4,6 @@ subroutine qra64a(dd,nf1,nf2,nfqso,ntol,mycall_12,sync,nsnr,dtx,nfreq,    &
   use packjt
   parameter (NFFT=2*6912,NH=NFFT/2,NZ=5760)
   character decoded*22,mycall_12*12,mycall*6
-  character*1 mark(0:5),zplot(0:63)
   logical ltext
   integer icos7(0:6)
   integer ipk(1)
@@ -20,7 +19,6 @@ subroutine qra64a(dd,nf1,nf2,nfqso,ntol,mycall_12,sync,nsnr,dtx,nfreq,    &
   complex cx(0:NH)
   equivalence (x,cx)
   data icos7/2,5,6,0,4,1,3/                            !Costas 7x7 pattern
-  data mark/' ','.','-','+','X','$'/
   common/qra64com/ss(NZ,194),s3(0:63,1:63),ccf(NZ,0:25)
   save
 
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 34226f619..0381a58fb 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -105,9 +105,9 @@ extern "C" {
                 float* level, float* sigdb, float* snr, float* dfreq,
                 float* width);
 
-  void fast_decode_(short id2[], int narg[], char msg[], char pchkFile[],
-                    char mycall[], char hiscall[], int len1, int len2,
-                    int len3, int len4);
+  void fast_decode_(short id2[], int narg[], bool* bShMsgs, char msg[],
+                    char pchkFile[], char mycall[], char hiscall[],
+                    int len1, int len2, int len3, int len4);
   void hash_calls_(char calls[], int* ih9, int len);
   void degrade_snr_(short d2[], int* n, float* db, float* bandwidth);
   void wav12_(short d2[], short d1[], int* nbytes, short* nbitsam2);
@@ -2207,7 +2207,7 @@ void MainWindow::decode()                                       //decode()
     narg[14]=m_config.aggressive();
     memcpy(d2b,dec_data.d2,2*360000);
     watcher3.setFuture (QtConcurrent::run (std::bind (fast_decode_,&d2b[0],
-        &narg[0],&m_msg[0][0],&m_pchkFile[0],dec_data.params.mycall,
+        &narg[0],&m_bShMsgs,&m_msg[0][0],&m_pchkFile[0],dec_data.params.mycall,
         dec_data.params.hiscall,80,512,12,12)));
   } else {
     memcpy(to, from, qMin(mem_jt9->size(), size));
@@ -3975,6 +3975,7 @@ void MainWindow::on_actionMSK144_triggered()
   m_toneSpacing=0.0;
   ui->cbShMsgs->setChecked(false);
   ui->cbShMsgs->setVisible(true);
+//  ui->sbFtol->setVisible(false);  //Maybe?
   ui->actionMSK144->setChecked(true);
 }