Index: trunk/psphot/src/psphotReplaceUnfit.c
===================================================================
--- trunk/psphot/src/psphotReplaceUnfit.c	(revision 13900)
+++ trunk/psphot/src/psphotReplaceUnfit.c	(revision 16820)
@@ -18,5 +18,4 @@
         pmSourceAdd (source, PM_MODEL_OP_FULL, maskVal);
         source->mode &= ~PM_SOURCE_MODE_SUBTRACTED;
-        source->mode &= ~PM_SOURCE_MODE_TEMPSUB;
     }
     psLogMsg ("psphot.replace", 3, "replace unfitted models: %f sec (%ld objects)\n", psTimerMark ("psphot"), sources->n);
@@ -24,9 +23,14 @@
 }
 
-bool psphotReplaceAll (psArray *sources, psMaskType maskVal) {
+bool psphotReplaceAll (psArray *sources, psMetadata *recipe) {
 
+    bool status;
     pmSource *source;
 
     psTimerStart ("psphot");
+
+    // user-defined masks to test for good/bad pixels (build from recipe list if not yet set)
+    psMaskType maskVal = psMetadataLookupU8(&status, recipe, "MASK.PSPHOT"); // Mask value for bad pixels
+    assert (maskVal);
 
     for (int i = 0; i < sources->n; i++) {
@@ -39,5 +43,5 @@
       source->mode &= ~PM_SOURCE_MODE_SUBTRACTED;
     }
-    psLogMsg ("psphot.replace", PS_LOG_INFO, "replace models for %ld objects: %f sec\n", sources->n, psTimerMark ("psphot"));
+    psLogMsg ("psphot.replace", PS_LOG_INFO, "replaced models for %ld objects: %f sec\n", sources->n, psTimerMark ("psphot"));
     return true;
 }
