Index: branches/tap_branches/ppImage/src/ppImageOptions.c
===================================================================
--- branches/tap_branches/ppImage/src/ppImageOptions.c	(revision 25900)
+++ branches/tap_branches/ppImage/src/ppImageOptions.c	(revision 27838)
@@ -32,5 +32,6 @@
     options->doShutter       = false;   // Shutter correction
     options->doFlat          = false;   // Flat-field normalisation
-    options->doPattern       = false;   // Pattern noise subtraction
+    options->doPatternRow    = false;   // Row pattern correction
+    options->doPatternCell   = false;   // Cell pattern correction
     options->doFringe        = false;   // Fringe subtraction
     options->doPhotom        = false;   // Source identification and photometry
@@ -90,12 +91,14 @@
     options->fringeKeep      = 1.0;     // Fringe keep fraction
 
-    // Pattern noise values
-
-    options->patternOrder    = 0;       // Polynomial order
-    options->patternIter     = 0;       // Clipping iterations
-    options->patternRej      = NAN;     // Clipping rejection threshold
-    options->patternThresh   = NAN;     // Threshold for ignoring pixels
-    options->patternMean     = PS_STAT_NONE; // Statistic for mean
-    options->patternStdev    = PS_STAT_NONE; // Statistic for standard deviation
+    // Pattern correction values
+
+    options->patternRowOrder    = 0;       // Polynomial order
+    options->patternRowIter     = 0;       // Clipping iterations
+    options->patternRowRej      = NAN;     // Clipping rejection threshold
+    options->patternRowThresh   = NAN;     // Threshold for ignoring pixels
+    options->patternRowMean     = PS_STAT_NONE; // Statistic for mean
+    options->patternRowStdev    = PS_STAT_NONE; // Statistic for standard deviation
+    options->patternCellBG      = PS_STAT_NONE; // Statistic for background
+    options->patternCellMean    = PS_STAT_NONE; // Statistic for mean
 
     // Remnance values
@@ -238,5 +241,6 @@
     options->doFringe = psMetadataLookupBool(NULL, recipe, "FRINGE");
     options->doShutter = psMetadataLookupBool(NULL, recipe, "SHUTTER");
-    options->doPattern = psMetadataLookupBool(NULL, recipe, "PATTERN");
+    options->doPatternRow = psMetadataLookupBool(NULL, recipe, "PATTERN.ROW");
+    options->doPatternCell = psMetadataLookupBool(NULL, recipe, "PATTERN.CELL");
 
     options->doStats = false;
@@ -249,14 +253,15 @@
 
     options->burntoolTrails = psMetadataLookupS32(&status, recipe, "BURNTOOL.TRAILS");
-    fprintf(stderr,"TRAILS: %d %d %d\n",options->burntoolTrails,psMetadataLookupS32(&status,recipe,"BURNTOOL.TRAILS"),status);
+    psTrace("psModules.detrend", 7, "burntoolTrails: %d BURNTOOL.TRAILS: %d Status: %d\n",
+            options->burntoolTrails,psMetadataLookupS32(&status,recipe,"BURNTOOL.TRAILS"),status);
     if (!status) {
       psWarning("BURNTOOL.TRAILS not found in recipe: setting to default value.\n");
     }
-    
+
     // binned image options
     options->xBin1 = psMetadataLookupS32(&status, recipe, "BIN1.XBIN");
     if (!status) {
         psWarning("BIN1.XBIN not found in recipe: setting to default value.\n");
-	options->xBin1 = 4;
+        options->xBin1 = 4;
     }
     options->yBin1 = psMetadataLookupS32(&status, recipe, "BIN1.YBIN");
@@ -319,11 +324,13 @@
     options->fringeKeep = psMetadataLookupF32(NULL, recipe, "FRINGE.KEEP");
 
-    // Pattern noise
-    options->patternOrder = psMetadataLookupS32(NULL, recipe, "PATTERN.ORDER");
-    options->patternIter = psMetadataLookupS32(NULL, recipe, "PATTERN.ITER");
-    options->patternRej = psMetadataLookupF32(NULL, recipe, "PATTERN.REJ");
-    options->patternThresh = psMetadataLookupF32(NULL, recipe, "PATTERN.THRESH");
-    options->patternMean = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.MEAN"));
-    options->patternStdev = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.STDEV"));
+    // Pattern correction
+    options->patternRowOrder = psMetadataLookupS32(NULL, recipe, "PATTERN.ROW.ORDER");
+    options->patternRowIter = psMetadataLookupS32(NULL, recipe, "PATTERN.ROW.ITER");
+    options->patternRowRej = psMetadataLookupF32(NULL, recipe, "PATTERN.ROW.REJ");
+    options->patternRowThresh = psMetadataLookupF32(NULL, recipe, "PATTERN.ROW.THRESH");
+    options->patternRowMean = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.ROW.MEAN"));
+    options->patternRowStdev = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.ROW.STDEV"));
+    options->patternCellBG = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.CELL.BG"));
+    options->patternCellMean = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.CELL.MEAN"));
 
     // Remnance options
