diff --git a/ChangeLog b/ChangeLog
index 0438058dbd74693c8b2137dc7d181931e08bc2e5..45739ad119d2fd34e07babe4ff4e43be7174f7cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-03-01  Mike Frysinger  <vapier@gentoo.org>
+	* src/color.c (color_update) - Do not write to stderr on magic
+	errors.  If the magic db has errors such that magic_load() fails,
+	the current code dumps to stderr which messes up the terminal.
+	The error message is also vague to the point where it's confusing
+	-- I thought nano had problems writing to the file I was editing.
+	Instead, use statusbar() and clarify the messages.
+	(Patch tweaked by Benno.)
+
 2014-02-28  Benno Schulenberg  <bensberg@justemail.net>
 	* src/text.c (execute_command) - Equalize pipe error messages.
 	* src/global.c (thanks_for_all_the_fish) - Remove a redundant
diff --git a/src/color.c b/src/color.c
index e5d3348f97396be05bca34a11faec5df53f99c4b..402818084f61423498f14123faaa960ed20d9684 100644
--- a/src/color.c
+++ b/src/color.c
@@ -160,24 +160,23 @@ void color_update(void)
     }
 
 #ifdef HAVE_LIBMAGIC
-
-    if (strcmp(openfile->filename,"") && stat(openfile->filename, &fileinfo) == 0) {
+    if (stat(openfile->filename, &fileinfo) == 0) {
 	m = magic_open(MAGIC_SYMLINK |
 #ifdef DEBUG
                        MAGIC_DEBUG | MAGIC_CHECK |
-#endif /* DEBUG */
+#endif
                        MAGIC_ERROR);
 	if (m == NULL || magic_load(m, NULL) < 0)
-	    fprintf(stderr, "something went wrong: %s [%s]\n", strerror(errno), openfile->filename);
+	    statusbar(_("magic_load() failed: %s"), strerror(errno));
 	else {
 	    magicstring = magic_file(m,openfile->filename);
 	    if (magicstring == NULL) {
 		magicerr = magic_error(m);
-		fprintf(stderr, "something went wrong: %s [%s]\n", magicerr, openfile->filename);
+		statusbar(_("magic_file(%s) failed: %s"), openfile->filename, magicerr);
             }
 #ifdef DEBUG
-	    fprintf(stderr, "magic string returned: %s\n", magicstring);
-#endif /* DEBUG */
+	fprintf(stderr, "magic string returned: %s\n", magicstring);
+#endif
 	}
     }
 #endif /* HAVE_LIBMAGIC */