diff --git a/w-stacking-fftw.c b/w-stacking-fftw.c
index 6e00e73eb4ede8a460fa899779e706a2a6ec180b..a2d815104c805161b50e60afd2a50af7e067c67a 100644
--- a/w-stacking-fftw.c
+++ b/w-stacking-fftw.c
@@ -122,8 +122,8 @@ int main(int argc, char * argv[])
 	int num_threads;
 
         // Resolution 
-	double dx = 0.5/(double)grid_size_x;
-	double dw = 0.5/(double)num_w_planes;
+	double dx = 1.0/(double)grid_size_x;
+	double dw = 1.0/(double)num_w_planes;
 	// Half support size
 	double w_supporth = (double)((w_support-1)/2)*dx;
 
@@ -133,9 +133,9 @@ int main(int argc, char * argv[])
 	fitsfile *fptrimg;
 	int status;
 	long nelements;
-	long fpixel, lpixel;
-	char testfitsreal[FILENAMELENGTH] = "parallel_np2_real.fits";
-	char testfitsimag[FILENAMELENGTH] = "parallel_np2_img.fits";
+//	long fpixel, lpixel;
+	char testfitsreal[FILENAMELENGTH] = "parallel_np4_real.fits";
+	char testfitsimag[FILENAMELENGTH] = "parallel_np4_img.fits";
 
 	long naxis = 2;
 	long naxes[2] = { grid_size_x, grid_size_y };
@@ -217,7 +217,6 @@ if(rank == 0){
 	// LOCAL grid size
 	xaxis = local_grid_size_x;
 	yaxis = local_grid_size_y;
-
 	clock_gettime(CLOCK_MONOTONIC, &begin);
 	start = clock();
 
@@ -975,34 +974,39 @@ if(rank == 0){
 	    fits_close_file(fptreal, &status);
 	    #endif
 
-//            pFilereal = fopen (fftfile2,"wb");
-//            pFileimg = fopen (fftfile3,"wb");
-
-//            fclose(pFilereal);
-//            fclose(pFileimg);
+            pFilereal = fopen (fftfile2, "wb");
+	    pFileimg = fopen (fftfile3, "wb");
+	    fclose(pFilereal);
+	    fclose(pFileimg);
         }
 	#ifdef USE_MPI
 	MPI_Barrier(MPI_COMM_WORLD);
         #endif
         if(rank == 0)printf("WRITING IMAGE\n");
+        long * fpixel = (long *) malloc(sizeof(long)*naxis);
+        long * lpixel = (long *) malloc(sizeof(long)*naxis);
+        
 	for (int isector=0; isector<size; isector++)
 	{
 	    #ifdef USE_MPI
 	    MPI_Barrier(MPI_COMM_WORLD);
             #endif
 	    if(isector == rank)
-            {
+            //if(rank == 0)
+	    {
                #ifdef FITSIO
 
 	       printf("%d writing\n",isector);
-               long * fpixel = (long *) malloc(sizeof(long)*naxis);
-               long * lpixel = (long *) malloc(sizeof(long)*naxis);
+               //long * fpixel = (long *) malloc(sizeof(long)*naxis);
+               //long * lpixel = (long *) malloc(sizeof(long)*naxis);
                
                fpixel[0] = 1;
-               lpixel[0] = xaxis;
                fpixel[1] = isector*yaxis+1;
+               lpixel[0] = xaxis;
                lpixel[1] = (isector+1)*yaxis;
-
+               //printf("fpixel %d, %d\n", fpixel[0], fpixel[1]);
+	       //printf("lpixel %d, %d\n", lpixel[0], lpixel[1]);
+	       
                status = 0;
 	       fits_open_image(&fptreal, testfitsreal, READWRITE, &status);
                fits_write_subset(fptreal, TDOUBLE, fpixel, lpixel, image_real, &status);
@@ -1015,18 +1019,18 @@ if(rank == 0){
 
                #endif
 
-//               pFilereal = fopen (fftfile2,"ab");
-//               pFileimg = fopen (fftfile3,"ab");
+               pFilereal = fopen (fftfile2,"ab");
+               pFileimg = fopen (fftfile3,"ab");
 
-//	       long global_index = isector*(xaxis*yaxis)*sizeof(double);
+	       long global_index = isector*(xaxis*yaxis)*sizeof(double);
 
-//               fseek(pFilereal, global_index, SEEK_SET);
-//               fwrite(image_real, xaxis*yaxis, sizeof(double), pFilereal);
-//               fseek(pFileimg, global_index, SEEK_SET);
-//               fwrite(image_imag, xaxis*yaxis, sizeof(double), pFileimg);
+               fseek(pFilereal, global_index, SEEK_SET);
+               fwrite(image_real, xaxis*yaxis, sizeof(double), pFilereal);
+               fseek(pFileimg, global_index, SEEK_SET);
+               fwrite(image_imag, xaxis*yaxis, sizeof(double), pFileimg);
 
-//               fclose(pFilereal);
-//               fclose(pFileimg);
+               fclose(pFilereal);
+               fclose(pFileimg);
 	    }
 	}
 	#ifdef USE_MPI