Index: trunk/psModules/src/extras/pmCensor.c
===================================================================
--- trunk/psModules/src/extras/pmCensor.c	(revision 29389)
+++ trunk/psModules/src/extras/pmCensor.c	(revision 29390)
@@ -3,5 +3,5 @@
 
 bool
-pmCensorGetMask(pmConfig *config, psU32 *pMaskMask)
+pmCensorGetMasks(pmConfig *config, psU32 *pMaskCensor, psU32 *pMaskStreak)
 {
     bool status;
@@ -12,12 +12,4 @@
     }
 
-    // first look for the value in the recipes
-    psU32 maskMask = psMetadataLookupU32(&status, config->camera, "MASK.NO.CENSOR");
-    if (status) {
-        // All done
-        *pMaskMask = ~maskMask;
-        return true;
-    }
-    // Not defined. Now we must compute it.
 
     // Older sets of mask values had SPIKE and STARCORE with the same value as STREAK
@@ -28,4 +20,15 @@
         return false;
     }
+    *pMaskStreak = streak;
+
+    // first look for the value in the recipes
+    psU32 maskNoCensor = psMetadataLookupU32(&status, config->camera, "MASK.NO.CENSOR");
+    if (status) {
+        // All done
+        *pMaskCensor = ~maskNoCensor;
+        return true;
+    }
+
+    // Not defined. So we must compute it.
 
     // preserve pixels that are only CONV.POOR
@@ -62,5 +65,5 @@
     // That was true in older 8 bit mask configurations.
 
-    *pMaskMask = ~(convPoor | suspect | starcore | spike) | streak;
+    *pMaskCensor = ~(convPoor | suspect | starcore | spike) | streak;
 
     return true;
@@ -71,11 +74,12 @@
     *pNumCensored = 0;
 
-    psU32 maskMask;
-    if (!pmCensorGetMask(config, &maskMask)) {
+    psU32 censorMask;
+    psU32 streakMask;
+    if (!pmCensorGetMasks(config, &censorMask, &streakMask)) {
         psError(PS_ERR_UNKNOWN, false, "failed to lookup set of mask bits to censor.\n");
         return false;
     }
 
-    if (~maskMask == 0) {
+    if (~censorMask == 0) {
         // censoring masked pixels is not required
         return true;
@@ -84,4 +88,6 @@
     double exciseValue;
     if (image->type.type == PS_TYPE_U16) {
+        exciseValue = 0x7fff;
+    } else if (image->type.type == PS_TYPE_U16) {
         exciseValue = 0xffff;
     } else if (image->type.type == PS_TYPE_F32) {
@@ -96,5 +102,5 @@
         for (int x=0; x<image->numCols; x++) {
             psU16 maskVal = psImageGet(mask, x, y);
-            if (maskVal & maskMask) {
+            if (maskVal & censorMask) {
                 (*pNumCensored)++;
                 psImageSet(image, x, y, exciseValue);
Index: trunk/psModules/src/extras/pmCensor.h
===================================================================
--- trunk/psModules/src/extras/pmCensor.h	(revision 29389)
+++ trunk/psModules/src/extras/pmCensor.h	(revision 29390)
@@ -4,5 +4,5 @@
 #include <pmConfig.h>
 
-bool pmCensorGetMask(pmConfig *config, psU32 *pMaskMask);
+bool pmCensorGetMask(pmConfig *config, psU32 *pMaskCensor, psU32 *pMaskStreak);
 bool pmCensorMasked(pmConfig *config, psImage *image, psImage *mask, psImage *variance, long *pNumCensored);
 
