Index: trunk/psLib/src/fits/psFitsScale.c
===================================================================
--- trunk/psLib/src/fits/psFitsScale.c	(revision 18156)
+++ trunk/psLib/src/fits/psFitsScale.c	(revision 19383)
@@ -13,4 +13,5 @@
 #include "psTrace.h"
 
+#include "psImage.h"
 #include "psFits.h"
 #include "psImageBackground.h"
@@ -98,4 +99,6 @@
                        double *bzero, // Zero point, to return
                        const psImage *image, // Image to scale
+                       const psImage *mask, // Mask image
+                       psMaskType maskVal, // Value to mask
                        const psFitsOptions *options // FITS options
     )
@@ -112,5 +115,5 @@
     psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS, seed);
     psStats *stats = psStatsAlloc(MEAN_STAT | STDEV_STAT); // Statistics object
-    if (!psImageBackground(stats, NULL, image, NULL, 0, rng)) {
+    if (!psImageBackground(stats, NULL, image, mask, maskVal, rng)) {
         psError(PS_ERR_UNKNOWN, false, "Unable to perform statistics on image");
         psFree(rng);
@@ -163,10 +166,6 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-bool psFitsScaleDetermine(double *bscale, // Scaling, to return
-                          double *bzero, // Zero point, to return
-                          long *blank,  // Blank value, to return
-                          const psImage *image, // Image to scale
-                          const psFits *fits // FITS options
-    )
+bool psFitsScaleDetermine(double *bscale, double *bzero, long *blank, const psImage *image,
+                          const psImage *mask, psMaskType maskVal, const psFits *fits)
 {
     PS_ASSERT_PTR_NON_NULL(bscale, false);
@@ -174,4 +173,8 @@
     PS_ASSERT_PTR_NON_NULL(blank, false);
     PS_ASSERT_IMAGE_NON_NULL(image, false);
+    if (mask) {
+        PS_ASSERT_IMAGE_TYPE(mask, PS_TYPE_MASK, false);
+        PS_ASSERT_IMAGES_SIZE_EQUAL(mask, image, false);
+    }
     PS_ASSERT_FITS_NON_NULL(fits, false);
 
@@ -216,5 +219,5 @@
       case PS_FITS_SCALE_STDEV_NEGATIVE:
       case PS_FITS_SCALE_STDEV_BOTH:
-        if (!scaleStdev(bscale, bzero, image, options)) {
+        if (!scaleStdev(bscale, bzero, image, mask, maskVal, options)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to set BSCALE and BZERO from stdev");
             return false;
