diff --git a/lib/wsprd/wsprd.c b/lib/wsprd/wsprd.c
index 3fde45d75..48e4d5e5e 100644
--- a/lib/wsprd/wsprd.c
+++ b/lib/wsprd/wsprd.c
@@ -966,6 +966,16 @@ int main(int argc, char *argv[])
     date[6]='\0';
     uttime[4]='\0';
     
+    // write a c2 file
+    if( writec2 ) {
+        char c2filename[15];
+        double carrierfreq=dialfreq;
+        int wsprtype=2;
+        strcpy(c2filename,"000000_0001.c2");
+        printf("Writing %s\n",c2filename);
+        writec2file(c2filename, wsprtype, carrierfreq, idat, qdat);
+    }
+
     // Do windowed ffts over 2 symbols, stepped by half symbols
     int nffts=4*floor(npoints/512)-1;
     fftin=(fftwf_complex*) fftwf_malloc(sizeof(fftwf_complex)*512);
@@ -1476,15 +1486,6 @@ int main(int argc, char *argv[])
                 }
             }
         }
-        
-        if( ipass == 0 && writec2 ) {
-            char c2filename[15];
-            double carrierfreq=dialfreq;
-            int wsprtype=2;
-            strcpy(c2filename,"000000_0001.c2");
-            printf("Writing %s\n",c2filename);
-            writec2file(c2filename, wsprtype, carrierfreq, idat, qdat);
-        }
     }
     
     // sort the result in order of increasing frequency
