Index: branches/czw_branch/20160809/psLib/src/fits/psFitsScale.c
===================================================================
--- branches/czw_branch/20160809/psLib/src/fits/psFitsScale.c	(revision 39722)
+++ branches/czw_branch/20160809/psLib/src/fits/psFitsScale.c	(revision 39787)
@@ -189,15 +189,30 @@
                 // Desperate retry
                 mean = psStatsGetValue(stats, DESPERATE_MEAN_STAT);
-                stdev = psStatsGetValue(stats, DESPERATE_STDEV_STAT);
+		if ((STDEV_STAT == PS_STAT_SAMPLE_QUARTILE)||(STDEV_STAT == PS_STAT_ROBUST_QUARTILE)) {
+		  stdev = 0.7415 * (stats->sampleUQ - stats->sampleLQ);
+		}
+		else { 
+		  stdev = psStatsGetValue(stats, DESPERATE_STDEV_STAT);
+		}
             }
         } else {
             // Retry with all available pixels
             mean = psStatsGetValue(stats, MEAN_STAT);
-            stdev = psStatsGetValue(stats, STDEV_STAT);
+	    if ((STDEV_STAT == PS_STAT_SAMPLE_QUARTILE)||(STDEV_STAT == PS_STAT_ROBUST_QUARTILE)) {
+	      stdev = 0.7415 * (stats->sampleUQ - stats->sampleLQ);
+	    }
+	    else {
+	      stdev = psStatsGetValue(stats, STDEV_STAT);
+	    }
         }
     } else {
         // First attempt
         mean = psStatsGetValue(stats, MEAN_STAT);
-        stdev = psStatsGetValue(stats, STDEV_STAT);
+	if ((STDEV_STAT == PS_STAT_SAMPLE_QUARTILE)||(STDEV_STAT == PS_STAT_ROBUST_QUARTILE)) {
+	  stdev = 0.7415 * (stats->sampleUQ - stats->sampleLQ);
+	}
+	else {
+	  stdev = psStatsGetValue(stats, STDEV_STAT);
+	}
     }
     psFree(rng);
@@ -247,4 +262,6 @@
     *bzero = imageVal - *bscale * diskVal;
 
+    fprintf(stderr,"CZW: %g %g -> %g %g @ %ld %g %ld\n",mean,stdev,*bzero,*bscale,range,imageVal,diskVal);
+    
     psTrace("psLib.fits", 5, "Image %lf corresponds to disk %ld --> BZERO: %lf", imageVal, diskVal, *bzero);
 
@@ -554,15 +571,31 @@
                 // Desperate retry
                 mean = psStatsGetValue(stats, DESPERATE_MEAN_STAT);
-                stdev = psStatsGetValue(stats, DESPERATE_STDEV_STAT);
-            }
+		if ((DESPERATE_STDEV_STAT == PS_STAT_SAMPLE_QUARTILE)||(DESPERATE_STDEV_STAT == PS_STAT_ROBUST_QUARTILE)) {
+		  stdev = 0.7415 * (stats->sampleUQ - stats->sampleLQ); // Calculate a "sigma" based on the interquartile distance.
+		}
+		else {
+		  
+		  stdev = psStatsGetValue(stats, DESPERATE_STDEV_STAT);
+		}
+	    }	
         } else {
             // Retry with all available pixels
             mean = psStatsGetValue(stats, MEAN_STAT);
-            stdev = psStatsGetValue(stats, STDEV_STAT);
+	    if ((STDEV_STAT == PS_STAT_SAMPLE_QUARTILE)||(STDEV_STAT == PS_STAT_ROBUST_QUARTILE)) {
+	      stdev = 0.7415 * (stats->sampleUQ - stats->sampleLQ); // Calculate a "sigma" based on the interquartile distance.
+	    }
+	    else {
+	      stdev = psStatsGetValue(stats, STDEV_STAT);
+	    }
         }
     } else {
         // First attempt
         mean = psStatsGetValue(stats, MEAN_STAT);
-        stdev = psStatsGetValue(stats, STDEV_STAT);
+	if ((STDEV_STAT == PS_STAT_SAMPLE_QUARTILE)||(STDEV_STAT == PS_STAT_ROBUST_QUARTILE)) {
+	  stdev = 0.7415 * (stats->sampleUQ - stats->sampleLQ); // Calculate a "sigma" based on the interquartile distance.
+	}
+	else { 
+	  stdev = psStatsGetValue(stats, STDEV_STAT);
+	}
     }
     psFree(rng);
@@ -723,15 +756,30 @@
                 // Desperate retry
                 mean = psStatsGetValue(stats, DESPERATE_MEAN_STAT);
-                stdev = psStatsGetValue(stats, DESPERATE_STDEV_STAT);
+		if ((DESPERATE_STDEV_STAT == PS_STAT_SAMPLE_QUARTILE)||(DESPERATE_STDEV_STAT == PS_STAT_ROBUST_QUARTILE)) {
+		  stdev = 0.7415 * (stats->sampleUQ - stats->sampleLQ); // Calculate a "sigma" based on the interquartile distance.
+		}
+		else { 
+		  stdev = psStatsGetValue(stats, DESPERATE_STDEV_STAT);
+		}
             }
         } else {
             // Retry with all available pixels
             mean = psStatsGetValue(stats, MEAN_STAT);
-            stdev = psStatsGetValue(stats, STDEV_STAT);
+	    if ((STDEV_STAT == PS_STAT_SAMPLE_QUARTILE)||(STDEV_STAT == PS_STAT_ROBUST_QUARTILE)) {
+	      stdev = 0.7415 * (stats->sampleUQ - stats->sampleLQ); // Calculate a "sigma" based on the interquartile distance.
+	    }
+	    else {
+	      stdev = psStatsGetValue(stats, STDEV_STAT);
+	    }
         }
     } else {
         // First attempt
         mean = psStatsGetValue(stats, MEAN_STAT);
-        stdev = psStatsGetValue(stats, STDEV_STAT);
+	if ((STDEV_STAT == PS_STAT_SAMPLE_QUARTILE)||(STDEV_STAT == PS_STAT_ROBUST_QUARTILE)) {
+	  stdev = 0.7415 * (stats->sampleUQ - stats->sampleLQ); // Calculate a "sigma" based on the interquartile distance.
+	}
+	else {
+	  stdev = psStatsGetValue(stats, STDEV_STAT);
+	}
     }
     psFree(rng);
