Index: trunk/ippconfig/recipes/pswarp.config
===================================================================
--- trunk/ippconfig/recipes/pswarp.config	(revision 28438)
+++ trunk/ippconfig/recipes/pswarp.config	(revision 28442)
@@ -11,4 +11,5 @@
 INTERPOLATION.NUM	S32	1000		# Number of interpolation kernels to pre-calculate
 PSF			BOOL	TRUE		# Measure PSF for warped image?
+SOURCES			BOOL	TRUE		# Write source list for warped image?
 
 MASK.STATS         BOOL    TRUE            # calculate mask statistics.
@@ -27,2 +28,8 @@
 	PSF	BOOL	FALSE
 END
+
+# Background restoration
+BACKGROUND	METADATA
+	SOURCES		BOOL	FALSE		# Write source list for warped image?
+	PSF		BOOL	FALSE		# Measure PSF for warped image?
+END
Index: trunk/pswarp/src/pswarpParseCamera.c
===================================================================
--- trunk/pswarp/src/pswarpParseCamera.c	(revision 28438)
+++ trunk/pswarp/src/pswarpParseCamera.c	(revision 28442)
@@ -61,4 +61,5 @@
 {
     psAssert(config, "Require configuration");
+    bool mdok;                          // Status of MD lookup
 
     // The input image(s) is required: it defines the camera
@@ -94,4 +95,10 @@
     psFree(skyConfig);
 
+    psMetadata *recipe = psMetadataLookupPtr (&status, config->recipes, PSWARP_RECIPE);
+    if (!recipe) {
+        psError(PSWARP_ERR_CONFIG, false, "missing recipe %s", PSWARP_RECIPE);
+        return false;
+    }
+
     // The output skycell
     pmFPAfile *output = pmFPAfileDefineSkycell(config, NULL, "PSWARP.OUTPUT");
@@ -118,5 +125,5 @@
     }
 
-    if (astrom) {
+    if (astrom && psMetadataLookupBool(&mdok, recipe, "SOURCES")) {
         pmFPAfile *outSources = pmFPAfileDefineSkycell(config, output->fpa, "PSWARP.OUTPUT.SOURCES");
         if (!outSources) {
@@ -127,11 +134,4 @@
     }
 
-    psMetadata *recipe = psMetadataLookupPtr (&status, config->recipes, PSWARP_RECIPE);
-    if (!recipe) {
-        psError(PSWARP_ERR_CONFIG, false, "missing recipe %s", PSWARP_RECIPE);
-        return false;
-    }
-
-    bool mdok;                          // Status of MD lookup
     if (psMetadataLookupBool(&mdok, recipe, "PSF")) {
         // This file, PSPHOT.INPUT, is just used as a carrier; output files (eg, PSPHOT.RESID) are defined by
Index: trunk/pswarp/src/pswarpTransformReadout.c
===================================================================
--- trunk/pswarp/src/pswarpTransformReadout.c	(revision 28438)
+++ trunk/pswarp/src/pswarpTransformReadout.c	(revision 28442)
@@ -195,5 +195,5 @@
     psFree(interp);
 
-    if (goodPixels > 0) {
+    if (goodPixels > 0 && psMetadataLookupBool(&mdok, recipe, "SOURCES")) {
         if (!pswarpTransformSources(output, input, config)) {
             psError(psErrorCodeLast(), false, "Unable to interpolate image.");
