diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2068a2ac2..634c1e1ab 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -612,6 +612,7 @@ set (wsjt_FSRCS
   lib/superfox/sfox_unpack.f90
   lib/superfox/sfox_wave.f90
   lib/superfox/sfox_wave_gfsk.f90
+  lib/superfox/sfrx_sub.f90
   lib/superfox/twkfreq2.f90
   )
 
@@ -1249,8 +1250,8 @@ target_link_libraries (echosim wsjt_fort wsjt_cxx)
 add_executable (ft8sim lib/ft8/ft8sim.f90)
 target_link_libraries (ft8sim wsjt_fort wsjt_cxx)
 
-add_executable (sfrx lib/superfox/sfrx.f90)
-target_link_libraries (sfrx wsjt_fort wsjt_cxx)
+#add_executable (sfrx lib/superfox/sfrx.f90)
+#target_link_libraries (sfrx wsjt_fort wsjt_cxx)
 
 add_executable (msk144sim lib/msk144sim.f90)
 target_link_libraries (msk144sim wsjt_fort wsjt_cxx)
@@ -1639,7 +1640,7 @@ install (TARGETS udp_daemon message_aggregator wsjtx_app_version
   BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
   )
 
-install (TARGETS jt9 wsprd fmtave fcal fmeasure sfrx
+install (TARGETS jt9 wsprd fmtave fcal fmeasure 
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
   BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
   )
diff --git a/lib/decoder.f90 b/lib/decoder.f90
index 4da20fda6..51563c86f 100644
--- a/lib/decoder.f90
+++ b/lib/decoder.f90
@@ -53,8 +53,6 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
   character(len=12) :: mycall, hiscall
   character(len=6) :: mygrid, hisgrid
   character*60 line
-  character*256 cmnd,cmndmsg
-  character*6 crxfreq,cftol
   data ndec8/0/,ntr0/-1/
   save
   type(counting_jt4_decoder) :: my_jt4
@@ -144,16 +142,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
      if(ncontest.eq.7 .and. params%b_superfox .and. params%b_even_seq) then
         if(params%nzhsym.lt.50) go to 800
 ! Call the superFox decoder
-        open(47,file=trim(temp_dir)//'/fort.47',status='unknown',  &
-             access='stream')
-        write(47) params%yymmdd,params%nutc,id2(1:20),id2(1:180000)
-        close(47)
-        write(crxfreq,'(i6)') params%nfqso
-        write(cftol,'(i5)') params%ntol
-        cmnd=trim(exe_dir)//'/sfrx'//crxfreq//cftol// 'OTP "' // &
-             trim(temp_dir)//'/fort.47"'
-        call execute_command_line(trim(cmnd),exitstat=nexitstat,  &
-             cmdstat=ncmdstat,cmdmsg=cmndmsg)
+        call sfrx_sub(params%yymmdd,params%nutc,params%nfqso,params%ntol,id2)
      else
         call timer('decft8  ',0)
         newdat=params%newdat
diff --git a/lib/superfox/sfox_remove_ft8.f90 b/lib/superfox/sfox_remove_ft8.f90
index ce47ac008..fc990bca8 100644
--- a/lib/superfox/sfox_remove_ft8.f90
+++ b/lib/superfox/sfox_remove_ft8.f90
@@ -211,19 +211,3 @@ subroutine sfox_remove_ft8(dd,npts)
    enddo
    return
 end subroutine sfox_remove_ft8
-
-
-subroutine normalizebmet(bmet,n)
-   real bmet(n)
-
-   bmetav=sum(bmet)/real(n)
-   bmet2av=sum(bmet*bmet)/real(n)
-   var=bmet2av-bmetav*bmetav
-   if( var .gt. 0.0 ) then
-      bmetsig=sqrt(var)
-   else
-      bmetsig=sqrt(bmet2av)
-   endif
-   bmet=bmet/bmetsig
-   return
-end subroutine normalizebmet
diff --git a/lib/superfox/sfrx.f90 b/lib/superfox/sfrx.f90
index f73ad0d3b..537559126 100644
--- a/lib/superfox/sfrx.f90
+++ b/lib/superfox/sfrx.f90
@@ -52,6 +52,7 @@ program sfrx
 
   do ifile=ifile1,narg
      call getarg(ifile,fname)
+     write(72,*) ifile,narg,fname
           if(fname.eq.'OTP') then
              use_otp = .TRUE.
              cycle