Index: trunk/psModules/src/objects/pmSourceSky.c
===================================================================
--- trunk/psModules/src/objects/pmSourceSky.c	(revision 7604)
+++ trunk/psModules/src/objects/pmSourceSky.c	(revision 8004)
@@ -6,6 +6,6 @@
  *  @author EAM, IfA: significant modifications.
  *
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-06-21 03:21:16 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-07-28 03:21:19 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -49,4 +49,10 @@
     PS_ASSERT_INT_NONNEGATIVE(Radius, false);
 
+    psStatsOptions statistic = psStatsSingleOption(statsOptions);
+    if (statistic == 0) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Multiple or no statistics specified: %x\n", statsOptions);
+        return NULL;
+    }
+
     psImage *image = source->pixels;
     psImage *mask  = source->mask;
@@ -61,10 +67,8 @@
     myStats = psImageStats(myStats, image, mask, 0xff);
     psImageMaskRegion(mask, srcRegion, "AND", NOT_U8(PM_MASK_MARK));
-
-    psF64 tmpF64;
-    p_psGetStatValue(myStats, &tmpF64);
+    double value = psStatsGetValue(myStats, statistic);
     psFree(myStats);
 
-    if (isnan(tmpF64)) {
+    if (isnan(value)) {
         psTrace(__func__, 3, "---- %s(false) end ----\n", __func__);
         return(false);
@@ -73,5 +77,5 @@
         source->moments = pmMomentsAlloc();
     }
-    source->moments->Sky = (psF32) tmpF64;
+    source->moments->Sky = value;
     psTrace(__func__, 3, "---- %s(true) end ----\n", __func__);
     return (true);
@@ -92,4 +96,10 @@
     PS_ASSERT_INT_NONNEGATIVE(Radius, false);
 
+    psStatsOptions statistic = psStatsSingleOption(statsOptions);
+    if (statistic == 0) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Multiple or no statistics specified: %x\n", statsOptions);
+        return NULL;
+    }
+
     psImage *image = source->weight;
     psImage *mask  = source->mask;
@@ -104,10 +114,8 @@
     myStats = psImageStats(myStats, image, mask, 0xff);
     psImageMaskRegion(mask, srcRegion, "AND", NOT_U8(PM_MASK_MARK));
-
-    psF64 tmpF64;
-    p_psGetStatValue(myStats, &tmpF64);
+    double value = psStatsGetValue(myStats, statistic);
     psFree(myStats);
 
-    if (isnan(tmpF64)) {
+    if (isnan(value)) {
         psTrace(__func__, 3, "---- %s(false) end ----\n", __func__);
         return(false);
@@ -116,5 +124,5 @@
         source->moments = pmMomentsAlloc();
     }
-    source->moments->dSky = (psF32) tmpF64;
+    source->moments->dSky = value;
     psTrace(__func__, 3, "---- %s(true) end ----\n", __func__);
     return (true);
