diff --git a/lib/superfox/Makefile b/lib/superfox/Makefile
index 69e00eb88..7cacd12ad 100644
--- a/lib/superfox/Makefile
+++ b/lib/superfox/Makefile
@@ -17,11 +17,11 @@ CFLAGS= -O9 -Wall
 
 all:	rs_sf.a rstest rs_125_49
 
-OBJS1 = rstest.o ran1.o
+OBJS1 = rstest.o ran1.o rs_sf.a
 rstest: $(OBJS1)
 	$(FC) -o rstest $(OBJS1) rs_sf.a
 
-OBJS2 = rs_125_49.o ran1.o get_crc14.o
+OBJS2 = rs_125_49.o ran1.o get_crc14.o rs_sf.a
 rs_125_49: $(OBJS2)
 	$(FC) -o rs_125_49 $(OBJS2) rs_sf.a
 
diff --git a/lib/superfox/rs_sf.c b/lib/superfox/rs_sf.c
index a57c4bcef..d44d6fb85 100644
--- a/lib/superfox/rs_sf.c
+++ b/lib/superfox/rs_sf.c
@@ -26,14 +26,21 @@ void rs_encode_sf_(int *dgen, int *sent)
 
   // Reverse data order for the Karn codec.
   for(i=0; i<kk; i++) {
-    dat1[i]=dgen[kk-1-i];
+    //    dat1[i]=dgen[kk-1-i];
+    dat1[i]=dgen[i];                      //### Temporary, no reversal ###
   }
   // Compute the parity symbols
   encode_rs_sf(rs_sf,dat1,b);
 
   // Move parity symbols and data into sent[] array, in reverse order.
-  for (i = 0; i < nroots; i++) sent[nroots-1-i] = b[i];
-  for (i = 0; i < kk; i++) sent[i+nroots] = dat1[kk-1-i];
+  for (i = 0; i < nroots; i++) {
+    //    sent[nroots-1-i] = b[i];
+    sent[i] = b[i];                      //### Temporary, no reversal ###
+  }
+  for (i = 0; i < kk; i++) {
+    //    sent[i+nroots] = dat1[kk-1-i];
+    sent[i+nroots] = dat1[i];            //### Temporary, no reversal ###
+  }
 }
 
 void rs_decode_sf_(int *recd0, int *era0, int *numera0, int *decoded, int *nerr)
@@ -48,10 +55,23 @@ void rs_decode_sf_(int *recd0, int *era0, int *numera0, int *decoded, int *nerr)
   int recd[255];
 
   numera=*numera0;
-  for(i=0; i<kk; i++) recd[i]=recd0[nn-1-i];
-  for(i=0; i<nroots; i++) recd[kk+i]=recd0[nroots-1-i];
-  if(numera) 
-    for(i=0; i<numera; i++) era_pos[i]=era0[i];
+  for(i=0; i<kk; i++) {
+    //    recd[i]=recd0[nn-1-i];
+    recd[i]=recd0[i];
+  }
+  for(i=0; i<nroots; i++) {
+    //    recd[kk+i]=recd0[nroots-1-i];
+    recd[kk+i]=recd0[kk+i];
+  }
+  if(numera) {
+    for(i=0; i<numera; i++) {
+      era_pos[i]=era0[i];
+      //      printf("erased %d  %d\n",i,era_pos[i]);
+    }
+  }
   *nerr=decode_rs_sf(rs_sf,recd,era_pos,numera);
-  for(i=0; i<kk; i++) decoded[i]=recd[kk-1-i];
+  for(i=0; i<kk; i++) {
+    //    decoded[i]=recd[kk-1-i];
+    decoded[i]=recd[nroots+i];
+  }
 }
diff --git a/lib/superfox/rstest.f90 b/lib/superfox/rstest.f90
index 76b40adf9..0d2235d17 100644
--- a/lib/superfox/rstest.f90
+++ b/lib/superfox/rstest.f90
@@ -8,9 +8,9 @@ program rstest
   integer iera(0:200)                          !Positions of erasures
       
   nargs=iargc()
-  if(nargs.ne.4) then
-     print*,'Usage:   rstest  M  N   K  nerr'
-     print*,'Example: rstest  7 127 51   38'
+  if(nargs.ne.5) then
+     print*,'Usage:   rstest  M  N   K nera nerr'
+     print*,'Example: rstest  7 127 51   0   38'
      go to 999
   endif
   nkv=0
@@ -21,6 +21,8 @@ program rstest
   call getarg(3,arg)
   read(arg,*) kk
   call getarg(4,arg)
+  read(arg,*) nera
+  call getarg(5,arg)
   read(arg,*) nerr
   
 ! Initialize the Karn codec
@@ -28,9 +30,10 @@ program rstest
   nfz=3
   call rs_init_sf(mm,nq,nn,kk,nfz)             !Initialize the Karn RS codec
 
-! Generate and random symbols with values 0 to nq-1
+! Generate random message, kk symbols with values 0 to nq-1
   do i=1,kk
-     dgen(i)=int(nq*ran1(idum))
+!     dgen(i)=int(nq*ran1(idum))
+     dgen(i)=i
   enddo
 
   write(*,1000)
@@ -51,15 +54,17 @@ program rstest
 1006 format(/'Recovered channel symbols, with errors:')
   write(*,1002) gsym(1:nn)
 
-  nera=0
-  iera=0
+  do i=0,nera-1
+     iera(i)=i
+  enddo
+
   call rs_decode_sf(gsym,iera,nera,dat,nfixed)
   ibad=count(dat(1:kk).ne.dgen(1:kk))
   write(*,1008)
 1008 format(/'Decoded result:')
   write(*,1002) dat(1:kk)
-  write(*,1100) nerr,nfixed
-1100 format(/'nerr:',i3,'   nfixed:',i3)
+  write(*,1100) nerr,nera,nfixed
+1100 format(/'nerr:',i3,'   nera:',i3,'   nfixed:',i3)
   
 999 end program rstest