Index: trunk/ppStats/src/ppStatsFromMetadataStats.c
===================================================================
--- trunk/ppStats/src/ppStatsFromMetadataStats.c	(revision 19967)
+++ trunk/ppStats/src/ppStatsFromMetadataStats.c	(revision 19968)
@@ -5,44 +5,56 @@
 {
     for (int i = 0; i < entries->n; i++) {
-        ppStatsEntry *entry = entries->data[i];
+	ppStatsEntry *entry = entries->data[i];
 
-        if (!strcasecmp(entry->statistic, "constant")) {
-            continue;
-        }
+	if (!strcasecmp (entry->statistic, "constant")) continue;
+	
+	// XXX skip or warn on missing stats?
+	if (!entry->vector) continue;
 
-        // XXX skip or warn on missing stats?
-        if (!entry->vector) {
-            continue;
-        }
+	psStatsOptions option;
+	if (!strcasecmp (entry->statistic, "RMS")) {
+	    option = psStatsOptionFromString ("SAMPLE_MEAN");
+	    goto got_stats;
+	} 
+	if (!strcasecmp (entry->statistic, "SUM")) {
+	    option = psStatsOptionFromString ("SAMPLE_MEAN");
+	    goto got_stats;
+	} 
+	if (!strcasecmp (entry->statistic, "UQ")) {
+	    option = psStatsOptionFromString ("ROBUST_QUARTILE");
+	    goto got_stats;
+	} 
+	if (!strcasecmp (entry->statistic, "LQ")) {
+	    option = psStatsOptionFromString ("ROBUST_QUARTILE");
+	    goto got_stats;
+	} 
 
-        psStatsOptions option;
-        if (!strcasecmp (entry->statistic, "RMS")) {
-            option = psStatsOptionFromString ("ROBUST_MEDIAN");
-        } else if (!strcasecmp (entry->statistic, "SUM")) {
-            option = psStatsOptionFromString ("SAMPLE_MEAN");
-        } else if (!strcasecmp (entry->statistic, "UQ")) {
-            option = psStatsOptionFromString ("ROBUST_QUARTILE");
-        } else if (!strcasecmp (entry->statistic, "LQ")) {
-            option = psStatsOptionFromString ("ROBUST_QUARTILE");
-        } else {
-            option = psStatsOptionFromString (entry->statistic);
-        }
+	option = psStatsOptionFromString (entry->statistic);
+	
+    got_stats:
+	stats = psStatsAlloc (option);
 
-        psStats *stats = psStatsAlloc(option);
+	if (entry->vector->n == 0) continue;
 
-        psVectorStats(stats, entry->vector, NULL, NULL, 0);
+	psVectorStats (stats, entry->vector, NULL, NULL, 0);
 
-        double value;
-        if (!strcasecmp (entry->statistic, "RMS")) {
-            value = sqrt(stats->robustMedian);
-        } else if (!strcasecmp (entry->statistic, "SUM")) {
-            value = stats->sampleMean * entry->vector->n;
-        } else if (!strcasecmp (entry->statistic, "UQ")) {
-            value = stats->robustUQ;
-        } else if (!strcasecmp (entry->statistic, "LQ")) {
-            value = stats->robustLQ;
-        } else {
-            value = psStatsGetValue (stats, option);
-        }
+	if (!strcasecmp (entry->statistic, "RMS")) {
+	    value = sqrt(sampleMean * entry->vector->n);
+	    goto got_value;
+	} 
+	if (!strcasecmp (entry->statistic, "SUM")) {
+	    value = stats->sampleMean * entry->vector->n;
+	    goto got_value;
+	} 
+	if (!strcasecmp (entry->statistic, "UQ")) {
+	    value = stats->robustUQ;
+	    goto got_value;
+	} 
+	if (!strcasecmp (entry->statistic, "LQ")) {
+	    value = stats->robustLQ;
+	    goto got_value;
+	} 
+	value = psStatsGetValue (stats, option);
+
         entry->value = psMetadataItemAllocF32(entry->keyword, entry->statistic, value);
         psFree(stats);
