diff --git a/CMakeLists.txt b/CMakeLists.txt
index d4151e369..8458c6937 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -603,7 +603,7 @@ set (wsjt_FSRCS
   lib/fsk4hf/osd204.f90
   lib/fsk4hf/genwsprcpm.f90
   lib/fsk4hf/encode204.f90
-  lib/ft8/decode174_91.f90
+#  lib/ft8/decode174_91.f90
   lib/fsk4hf/ldpcsim174_91.f90
   lib/fsk4hf/ldpcsim174_74.f90
   lib/fsk4hf/get_crc24.f90
diff --git a/lib/fsk4hf/ldpcsim174_74.f90 b/lib/fsk4hf/ldpcsim174_74.f90
index 51ca6eb84..6969b3524 100644
--- a/lib/fsk4hf/ldpcsim174_74.f90
+++ b/lib/fsk4hf/ldpcsim174_74.f90
@@ -3,10 +3,12 @@ program ldpcsim174_74
 ! End-to-end test of the (174,74)/crc24 encoder and decoders.
 
    use crc
-   use packjt
+   use packjt77
 
    parameter(N=174, K=74, M=N-K)
    character*8 arg
+   character*37 msg0,msg
+   character*77 c77
    character*50 cmsg
    character*24 c24
    integer*1 msgbits(74)
@@ -17,21 +19,22 @@ program ldpcsim174_74
    integer nerrtot(174),nerrdec(174),nmpcbad(74)
    real rxdata(N),llr(N)
    real dllr(174),llrd(174)
-
-   data cmsg/'11111111000000001111111100000000111111110000000011'/
+   logical first,unpk77_success
+   data first/.true./
 
    nerrtot=0
    nerrdec=0
    nmpcbad=0  ! Used to collect the number of errors in the message+crc part of the codeword
 
    nargs=iargc()
-   if(nargs.ne.5) then
-      print*,'Usage: ldpcsim        niter ndeep  #trials    s    K'
-      print*,'e.g.   ldpcsim174_74   20     5     1000    0.85  64'
+   if(nargs.ne.5 .and. nargs.ne.6) then
+      print*,'Usage: ldpcsim        niter ndeep  #trials    s    K      [msg]'
+      print*,'e.g.   ldpcsim174_74   20     5     1000    0.85  64 "K9AN EN50 37"'
       print*,'s    : if negative, then value is ignored and sigma is calculated from SNR.'
       print*,'niter: is the number of BP iterations.'
       print*,'ndeep: -1 is BP only, ndeep>=0 is OSD order'
       print*,'K    :is the number of message+CRC bits and must be in the range [50,74]'
+      print*,'WSPR-format message is optional'
       return
    endif
    call getarg(1,arg)
@@ -44,6 +47,10 @@ program ldpcsim174_74
    read(arg,*) s
    call getarg(5,arg)
    read(arg,*) Keff
+   msg0='K9AN EN50 37                         '
+   if(nargs.eq.6) call getarg(6,msg0)
+   call pack77(msg0,i3,n3,c77)
+   cmsg=c77(1:50)
 
    rate=real(Keff)/real(N)
 
@@ -128,6 +135,18 @@ program ldpcsim174_74
       pberr=real(nberr)/(real(ntrials*N))
       write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,f5.2,8x,e10.3)") db,esn0,ngood,nue,ss,pberr
 
+      if(first) then
+         write(c77,'(50i1)') message
+         c77(51:77)='000000000000000000000110000'
+         call unpack77(c77,0,msg,unpk77_success)
+         if(unpk77_success) then
+            write(*,1100) msg(1:14)
+1100        format('Decoded message: ',a14)
+         else
+            print*,'Error unpacking message'
+         endif
+         first=.false.
+      endif
    enddo
 
    open(unit=23,file='nerrhisto.dat',status='unknown')