Index: trunk/ppImage/src/ppImageOptions.c
===================================================================
--- trunk/ppImage/src/ppImageOptions.c	(revision 30878)
+++ trunk/ppImage/src/ppImageOptions.c	(revision 31066)
@@ -239,17 +239,19 @@
     options->doShutter = psMetadataLookupBool(NULL, recipe, "SHUTTER");
 
-    // Look for pattern correction options in the camera format. If not found, look in the recipe.
-/*     if (psMetadataLookup(format, "PATTERN.ROW")) { */
-/*       options->doPatternRow = psMetadataLookupBool(NULL, format, "PATTERN.ROW"); */
-/*     } */
-/*     else { */
+    // PATTERN.ROW is selected by the recipe.  If it is selected, we search for the table
+    // PATTERN.ROW.SUBSET.  If this is found in our format file, we use that version;
+    // otherwise, we use the table provided in the recipe file "ppImage.config".  Within that
+    // table, we select the entry that matches our CHIP.NAME.  This will be either a boolean or
+    // a string of bits.  If it is a boolean, it specified whether or not to correct the entire
+    // chip; if it is a string, the bits specify which cells to correct (sequence is order of
+    // CELLS in the format:CHIPS metadata table)
+
+    // We also check the chip header for the boolean 'PTRN_ROW' : if this is true, we have
+    // already applied this correct to this data, so we simply skip the correction for this
+    // chip.
+
     options->doPatternRow = psMetadataLookupBool(NULL, recipe, "PATTERN.ROW");
-/*     } */
-/*     if (psMetadataLookup(format, "PATTERN.CELL")) { */
-/*       options->doPatternCell = psMetadataLookupBool(NULL, format, "PATTERN.CELL"); */
-/*     } */
-/*     else { */
     options->doPatternCell = psMetadataLookupBool(NULL, recipe, "PATTERN.CELL");
-/*     } */
+
     options->doMaskStats = psMetadataLookupBool(NULL, recipe, "MASK.STATS");
     options->addNoise = psMetadataLookupBool(NULL, recipe, "ADDNOISE");
