diff --git a/FFTlib/cc1fft.c b/FFTlib/cc1fft.c
index 2fc4e633f144e30aed7a3a0587508d8f668d96a6..dadadc531ae3fc6319dec0a2733ee1ae05cb9d2f 100644
--- a/FFTlib/cc1fft.c
+++ b/FFTlib/cc1fft.c
@@ -64,9 +64,8 @@ void cc1fft(complex *data, int n, int sign)
 	static DFTI_DESCRIPTOR_HANDLE handle[MAX_NUMTHREADS];
 	static int nprev[MAX_NUMTHREADS];
     MKL_LONG Status;
-	int id;
 #endif
-
+	int id;
 #ifdef _OPENMP
 	id = omp_get_thread_num();
 #else
diff --git a/FFTlib/ccmfft.c b/FFTlib/ccmfft.c
index fbbfde3def9a4410946719f3c8f674255d598fc0..c566f67865ae09048645bac374cc1bc48e87bd7b 100644
--- a/FFTlib/ccmfft.c
+++ b/FFTlib/ccmfft.c
@@ -67,8 +67,9 @@ void ccmfft(complex *data, int n1, int n2, int ld1, int sign)
 	static DFTI_DESCRIPTOR_HANDLE handle[MAX_NUMTHREADS];
 	static int nprev[MAX_NUMTHREADS];
     MKL_LONG Status;
-	int j, id;
+	int j;
 #endif
+    int id;
 
 #ifdef _OPENMP
 	id = omp_get_thread_num();
diff --git a/FFTlib/cr1fft.c b/FFTlib/cr1fft.c
index 4831beb973ecf00c440a0d706d33041287dee20f..9f20a51c2c025bef5f94491f9db72d77bed260ce 100644
--- a/FFTlib/cr1fft.c
+++ b/FFTlib/cr1fft.c
@@ -61,8 +61,9 @@ void cr1fft(complex *cdata, REAL *rdata, int n, int sign)
 	static int nprev[MAX_NUMTHREADS];
 	REAL *tmp;
     MKL_LONG Status;
-	int i, id;
+	int i;
 #endif
+    int id;
 
 #ifdef _OPENMP
 	id = omp_get_thread_num();
diff --git a/FFTlib/crmfft.c b/FFTlib/crmfft.c
index e4dad54fd2b6237ed69c098e7827436e34ae1381..10ee07b4e0f4c29f0c95e5e5a67e866c180d5794 100644
--- a/FFTlib/crmfft.c
+++ b/FFTlib/crmfft.c
@@ -75,8 +75,9 @@ void crmfft(complex *cdata, REAL *rdata, int n1, int n2, int ldc, int ldr, int s
 	static int nprev[MAX_NUMTHREADS];
     REAL *tmp;
     MKL_LONG Status;
-	int i, j, id;
+	int i, j;
 #endif
+    int id;
 
 #ifdef _OPENMP
 	id = omp_get_thread_num();
diff --git a/FFTlib/rc1fft.c b/FFTlib/rc1fft.c
index 99684424ebece107a1c71236b51dcc5fe2e86952..733786cae3926344349b3d010e02df4f235ca872 100644
--- a/FFTlib/rc1fft.c
+++ b/FFTlib/rc1fft.c
@@ -60,8 +60,9 @@ void rc1fft(REAL *rdata, complex *cdata, int n, int sign)
 	static DFTI_DESCRIPTOR_HANDLE handle[MAX_NUMTHREADS];
 	static int nprev[MAX_NUMTHREADS];
     MKL_LONG Status;
-	int i, id;
+	int i;
 #endif
+    int id;
 
 #ifdef _OPENMP
 	id = omp_get_thread_num();
diff --git a/FFTlib/rcmfft.c b/FFTlib/rcmfft.c
index 574de3031c1087725a6b40470b4d760065f6cb82..da085ca848abdd80271b114bb7597f52817ebe82 100644
--- a/FFTlib/rcmfft.c
+++ b/FFTlib/rcmfft.c
@@ -72,8 +72,9 @@ void rcmfft(REAL *rdata, complex *cdata, int n1, int n2, int ldr, int ldc, int s
 	static DFTI_DESCRIPTOR_HANDLE handle[MAX_NUMTHREADS];
 	static int nprev[MAX_NUMTHREADS];
     MKL_LONG Status;
-	int i, j, id;
+	int i, j;
 #endif
+    int id;
 
 #ifdef _OPENMP
 	id = omp_get_thread_num();
diff --git a/marchenko3D/getFileInfo3D.c b/marchenko3D/getFileInfo3D.c
index cdf000077ef7ab7bb5fac24fe6b72c8ea0e28104..fd00ceebcb474bf41b2c12acae7c7882ee487878 100644
--- a/marchenko3D/getFileInfo3D.c
+++ b/marchenko3D/getFileInfo3D.c
@@ -176,7 +176,7 @@ long getFileInfo3D(char *filename, long *n1, long *n2, long *n3, long *ngath, fl
                 itrace++;
             }
             if (itrace>1) {
-                *n2 = itrace/igy;
+                *n2 = MAX(itrace/igy,*n2);
                 *n3 = igy;
                 if (*n2>1) {
                     dxrcv  = (float)(gx_end - gx_start)/(float)(*n2-1);
@@ -194,7 +194,7 @@ long getFileInfo3D(char *filename, long *n1, long *n2, long *n3, long *ngath, fl
                 dysrc = (float)(hdr.sy - sy_shot)*scl;
             }
             else {
-                *n2 = MAX(hdr.trwf, 1);
+                *n2 = MAX(MAX(hdr.trwf, 1),*n2);
                 *n3 = 1;
                 *d2 = hdr.d2;
                 *d3 = 1.0;
diff --git a/marchenko3D/makeWindow3D.c b/marchenko3D/makeWindow3D.c
index bd5ba82b5dbc34204ec762823880b5b0605e0da5..2d2d55383221039a42f48d4d0b7ca4b83668e588 100644
--- a/marchenko3D/makeWindow3D.c
+++ b/marchenko3D/makeWindow3D.c
@@ -59,7 +59,7 @@ void makeWindow3D(char *file_ray, char *file_amp, char *file_wav, float dt, floa
 	    wavtmp = (float *)calloc(ntwav,sizeof(float));
         readData3D(fp, wavtmp, &hdr, ntwav);
         //Fit the wavelet into the same time-axis as the Marchenko scheme
-        for (i=0; i<ntwav; i++) {
+        for (i=0; i<(ntfft/2); i++) {
             wavelet[i] = wavtmp[i];
             wavelet[ntfft-1-i] = wavtmp[ntwav-1-i];
         }
diff --git a/marchenko3D/marchenko3D.c b/marchenko3D/marchenko3D.c
index 856969118d0408689398c937d76a5648f789bd72..037f24782f3f91cea31f3e33b00c7e18b5eeb817 100644
--- a/marchenko3D/marchenko3D.c
+++ b/marchenko3D/marchenko3D.c
@@ -282,7 +282,7 @@ int main (int argc, char **argv)
 /* G_d = p_0^+ = G_d (-t) ~ Tinv */
     if (file_ray!=NULL) {
         makeWindow3D(file_ray, file_amp, file_wav, dt, xrcvsyn, yrcvsyn, xsyn, ysyn, zsyn, 
-            xnxsyn, Nfoc, nx, ny, ntfft, muteW, G_d, verbose);
+            xnxsyn, Nfoc, nxs, nys, ntfft, muteW, G_d, verbose);
     }
     else {
         mode=-1; /* apply complex conjugate to read in data */
@@ -330,8 +330,7 @@ int main (int argc, char **argv)
     if (yrcvsyn[0] != 0 || yrcvsyn[nys*nxs-1] != 0 )  fysb = yrcvsyn[0];
     if (nxs>1) { 
         fxse = fxsb + (float)(nxs-1)*dxs;
-        dxf = (xrcvsyn[nys*nxs-1] - xrcvsyn[0])/(float)(nxs-1);
-        vmess("fxsb%.3f fxse:%.3f dxf:%.3f",fxsb,fxse,dxf);
+        dxf = (fxse - fxsb)/(float)(nxs-1);
     }
     else {
         fxse = fxsb;
@@ -342,7 +341,7 @@ int main (int argc, char **argv)
     }
     if (nys>1) {
         fyse = fysb + (float)(nys-1)*dys;
-        dyf = (yrcvsyn[nys*nxs-1] - yrcvsyn[0])/(float)(nys-1);
+        dyf = (fyse - fysb)/(float)(nys-1);
     }
     else {
         fyse = fysb;