Index: trunk/FACT++/src/fitsdump.cc
===================================================================
--- trunk/FACT++/src/fitsdump.cc	(revision 12725)
+++ trunk/FACT++/src/fitsdump.cc	(revision 12726)
@@ -535,18 +535,26 @@
 
 template<typename T>
-void displayStats(char* array, int numElems)
-{
+void displayStats(char* array, int numElems, ofstream& out)
+{
+	if (numElems == 0)
+	{
+		out << "Min: 0" << endl;
+		out << "Max: 0" << endl;
+		out << "Med: 0" << endl;
+		out << "Mea: 0" << endl;
+		return;
+	}
     sort(reinterpret_cast<T*>(array), &reinterpret_cast<T*>(array)[numElems]);
-    cout << "Min: " << reinterpret_cast<T*>(array)[0] << endl;
-    cout << "Max: " << reinterpret_cast<T*>(array)[numElems-1] << endl;
+    out << "Min: " << reinterpret_cast<T*>(array)[0] << endl;
+    out << "Max: " << reinterpret_cast<T*>(array)[numElems-1] << endl;
     if (numElems%2 == 0)
-        cout << "Med: " << (reinterpret_cast<T*>(array)[numElems/2] + reinterpret_cast<T*>(array)[numElems/2+1])/2.f << endl;
+        out << "Med: " << (reinterpret_cast<T*>(array)[numElems/2] + reinterpret_cast<T*>(array)[numElems/2+1])/2.f << endl;
     else
-        cout << "Med: " << reinterpret_cast<T*>(array)[numElems/2+1] << endl;
+        out << "Med: " << reinterpret_cast<T*>(array)[numElems/2+1] << endl;
 
     double average = 0;
     for (int i=0;i<numElems;i++)
         average += reinterpret_cast<T*>(array)[i];
-    cout << "Mea: " << average/(double)numElems << endl;
+    out << "Mea: " << average/(double)numElems << endl;
 
 }
@@ -633,30 +641,30 @@
     auto statsIt = statData.begin();
 
-    auto nameIt = listNamesOnly.begin();
+    auto nameIt = list.begin();
     for (auto it=columnsData.begin(); it != columnsData.end(); it++, rangesIt++, statsIt++, nameIt++)
     {
         int span = rangesIt->second - rangesIt->first;
-        cout << *nameIt << ": " << endl;
+        out << *nameIt << ": " << endl;
         switch (it->first) {
             case 'L':
-                    displayStats<bool>(*statsIt, numRows*span);
+                    displayStats<bool>(*statsIt, numRows*span, out);
                     break;
             case 'B':
-                    displayStats<char>(*statsIt, numRows*span);
+                    displayStats<char>(*statsIt, numRows*span, out);
                     break;
             case 'I':
-                    displayStats<int16_t>(*statsIt, numRows*span);
+                    displayStats<int16_t>(*statsIt, numRows*span, out);
                     break;
             case 'J':
-                    displayStats<int32_t>(*statsIt, numRows*span);
+                    displayStats<int32_t>(*statsIt, numRows*span, out);
                     break;
             case 'K':
-                    displayStats<int64_t>(*statsIt, numRows*span);
+                    displayStats<int64_t>(*statsIt, numRows*span, out);
                     break;
             case 'E':
-                    displayStats<float>(*statsIt, numRows*span);
+                    displayStats<float>(*statsIt, numRows*span, out);
                     break;
             case 'D':
-                    displayStats<double>(*statsIt, numRows*span);
+                    displayStats<double>(*statsIt, numRows*span, out);
                     break;
             default:
