Index: trunk/pswarp/src/pswarpLoop.c
===================================================================
--- trunk/pswarp/src/pswarpLoop.c	(revision 27062)
+++ trunk/pswarp/src/pswarpLoop.c	(revision 27063)
@@ -510,15 +510,21 @@
         const char *statsMDC = psMetadataConfigFormat(stats);
         if (!statsMDC) {
-            psError(PS_ERR_IO, false, "Unable to get statistics MDC file.\n");
+            psError(psErrorCodeLast(), false, "Unable to get statistics file.");
             psFree(stats);
             fclose(statsFile);
             return false;
         }
-        fprintf(statsFile, "%s", statsMDC);
+        psFree(stats);
+        if (fprintf(statsFile, "%s", statsMDC) != strlen(statsMDC)) {
+            psError(PSWARP_ERR_IO, true, "Unable to write statistics file.");
+            psFree(statsMDC);
+            return false;
+        }
         psFree(statsMDC);
-        fclose(statsFile);
+        if (fclose(statsFile) == EOF) {
+            psError(PSWARP_ERR_IO, true, "Unable to close statistics file.");
+            return false;
+        }
         pmConfigRunFilenameAddWrite(config, "STATS", statsName);
-
-        psFree(stats);
     }
 
@@ -527,5 +533,5 @@
     if (dump_file) {
         if (!pmConfigDump(config, dump_file)) {
-            psError(PS_ERR_IO, false, "Unable to dump configuration");
+            psError(psErrorCodeLast(), false, "Unable to dump configuration");
             return false;
         }
