diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
index fe67db018bd762c21654adb2b30134da6d5a21ed_bWVyY3VyaWFsL2Rpc3BhdGNoLnB5..720308f741cb53165fa0fe63d7ab27a6ca7fcb83_bWVyY3VyaWFsL2Rpc3BhdGNoLnB5 100644
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -183,8 +183,8 @@
         else:
             raise
     except OSError, inst:
-        if getattr(inst, "filename", None):
-            ui.warn(_("abort: %s: %s\n") % (inst.strerror, inst.filename))
+        if getattr(inst, "filename", None) is not None:
+            ui.warn(_("abort: %s: '%s'\n") % (inst.strerror, inst.filename))
         else:
             ui.warn(_("abort: %s\n") % inst.strerror)
     except KeyboardInterrupt:
diff --git a/tests/test-audit-path.t b/tests/test-audit-path.t
index fe67db018bd762c21654adb2b30134da6d5a21ed_dGVzdHMvdGVzdC1hdWRpdC1wYXRoLnQ=..720308f741cb53165fa0fe63d7ab27a6ca7fcb83_dGVzdHMvdGVzdC1hdWRpdC1wYXRoLnQ= 100644
--- a/tests/test-audit-path.t
+++ b/tests/test-audit-path.t
@@ -86,7 +86,7 @@
   $ hg manifest -r4
   /tmp/test
   $ hg update -Cr4
-  abort: *: $TESTTMP/target//tmp/test (glob)
+  abort: *: '$TESTTMP/target//tmp/test' (glob)
   [255]
 
   $ cd ..
diff --git a/tests/test-clone.t b/tests/test-clone.t
index fe67db018bd762c21654adb2b30134da6d5a21ed_dGVzdHMvdGVzdC1jbG9uZS50..720308f741cb53165fa0fe63d7ab27a6ca7fcb83_dGVzdHMvdGVzdC1jbG9uZS50 100644
--- a/tests/test-clone.t
+++ b/tests/test-clone.t
@@ -558,7 +558,7 @@
   $ hg init b
   $ cd b
   $ hg clone . ../a
-  abort: Permission denied: ../a
+  abort: Permission denied: '../a'
   [255]
   $ cd ..
   $ chmod 700 a
diff --git a/tests/test-convert.t b/tests/test-convert.t
index fe67db018bd762c21654adb2b30134da6d5a21ed_dGVzdHMvdGVzdC1jb252ZXJ0LnQ=..720308f741cb53165fa0fe63d7ab27a6ca7fcb83_dGVzdHMvdGVzdC1jb252ZXJ0LnQ= 100644
--- a/tests/test-convert.t
+++ b/tests/test-convert.t
@@ -316,7 +316,7 @@
   $ chmod 000 bogusdir
 
   $ hg convert a bogusdir
-  abort: Permission denied: bogusdir
+  abort: Permission denied: 'bogusdir'
   [255]
 
 user permissions should succeed
diff --git a/tests/test-dispatch.t b/tests/test-dispatch.t
index fe67db018bd762c21654adb2b30134da6d5a21ed_dGVzdHMvdGVzdC1kaXNwYXRjaC50..720308f741cb53165fa0fe63d7ab27a6ca7fcb83_dGVzdHMvdGVzdC1kaXNwYXRjaC50 100644
--- a/tests/test-dispatch.t
+++ b/tests/test-dispatch.t
@@ -46,6 +46,12 @@
 
   $ cd "$TESTTMP"
 
+OSError ... and with filename even when it is empty
+
+  $ hg -R a archive ''
+  abort: No such file or directory: ''
+  [255]
+
 #if no-outer-repo
 
 No repo: