Index: trunk/psLib/src/fits/psFitsScale.c
===================================================================
--- trunk/psLib/src/fits/psFitsScale.c	(revision 39509)
+++ trunk/psLib/src/fits/psFitsScale.c	(revision 39926)
@@ -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);
@@ -554,15 +569,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 +754,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);
