--- diskchanger.cpp.orig        2010-05-13 21:24:23.000000000 +0200
+++ diskchanger.cpp     2012-01-07 22:25:33.000000000 +0100
@@ -996,13 +996,16 @@ int DiskChanger::WriteMagazineLoaded(con
       /* unable to open loaded file for writing */
       return -1;
    }
-   if (fprintf(fs, "%s\n", lab.GetLabel(vlabel, sizeof(vlabel))) < 1) {
+   fprintf(fs, "%s\n", lab.GetLabel(vlabel, sizeof(vlabel)));
+   if (fclose(fs)) { 
       /* unable to write loaded file */
-      fclose(fs);
-      return -1;
+      lasterr = -1;
+      snprintf(lasterrmsg, sizeof(lasterrmsg), "i/o error writing label %s to file %s: %s", lab.GetLabel(vlabel, sizeof(vlabel)), loaded, strerror(errno));
+      vlog.Error(lasterrmsg);
+      return lasterr;
+   } else {
+      return 0;
    }
-   fclose(fs);
-   return 0;
 }

 /*

