Index: trunk/pswarp/src/pswarpTransformReadout.c
===================================================================
--- trunk/pswarp/src/pswarpTransformReadout.c	(revision 34800)
+++ trunk/pswarp/src/pswarpTransformReadout.c	(revision 35563)
@@ -16,5 +16,5 @@
  * NOTE: in this function, the coordinates are transformed from the OUTPUT to the INPUT
  */
-bool pswarpTransformReadout(pmReadout *output, pmReadout *input, pmConfig *config)
+bool pswarpTransformReadout(pmReadout *output, pmReadout *input, pmConfig *config, bool backgroundWarp)
 {
     // XXX this implementation currently ignores the use of the region
@@ -52,8 +52,4 @@
     }
 
-    // XXX unused int nThreads = psMetadataLookupS32(&mdok, config->arguments, "NTHREADS"); // Number of threads
-    // XXX unused if (!mdok) {
-    // XXX unused     nThreads = 0;
-    // XXX unused }
     float poorFrac = psMetadataLookupF32(NULL, config->arguments, "POOR.FRAC"); ///< Flux fraction for "poor"
 
@@ -61,5 +57,4 @@
     // output coordinates to input coordinates
     pswarpMapGrid *grid = pswarpMapGridFromImage(input, output, nGridX, nGridY);
-    //    if (psMetadataLookupBool(NULL,config->arguments,"BACKGROUND_WARPING")) {
     
     // XXX optionally modify the grid based on this result and force the maxError < XXX
@@ -117,4 +112,6 @@
     psAssert (xGridMax < grid->nXpts, "xGridMax too big\n");
     psAssert (yGridMax < grid->nYpts, "yGridMax too big\n");
+
+    // fprintf (stderr, "warp %d,%d - %d,%d\n", xGridMin, yGridMin, xGridMax, yGridMax);
 
     // create jobs and supply them to the threads
@@ -132,10 +129,9 @@
             args->goodPixels = 0;
 
-	    if (psMetadataLookupBool(NULL,config->arguments,"BACKGROUND_WARPING")) {
+	    if (backgroundWarp) {
 	      args->background_warping = true;
 	      args->offset_x = psMetadataLookupF32(NULL,config->arguments,"BKG_WARP_XOFFSET");
 	      args->offset_y = psMetadataLookupF32(NULL,config->arguments,"BKG_WARP_YOFFSET");
 	    }
-
 	    
             // allocate a job
@@ -210,11 +206,9 @@
     psFree(interp);
 
-    if (goodPixels > 0 && psMetadataLookupBool(&mdok, recipe, "SOURCES")) {
-      if (!psMetadataLookupBool(NULL,config->arguments,"BACKGROUND_WARPING")) {
-        if (!pswarpTransformSources(output, input, config)) {
-	  psError(psErrorCodeLast(), false, "Unable to interpolate image.");
-	  return false;
+    if (goodPixels > 0 && !backgroundWarp && psMetadataLookupBool(&mdok, recipe, "SOURCES")) {
+	if (!pswarpTransformSources(output, input, config)) {
+	    psError(psErrorCodeLast(), false, "Unable to transform sources.");
+	    return false;
         }
-      }
     }
 
