diff --git a/mercurial/patch.py b/mercurial/patch.py
index a6d51dcb18239b191fb3a9d71ea251fae5fa35be_bWVyY3VyaWFsL3BhdGNoLnB5..1e33384ff2edb2124c6b05b8533ee30ebd01c4c1_bWVyY3VyaWFsL3BhdGNoLnB5 100644
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -262,12 +262,8 @@
     data['message'] = message
     data['user'] = user
     tmpfp.close()
-    if not diffs_seen:
-        os.unlink(tmpname)
-        return data
-
     if parents:
         data['p1'] = parents.pop(0)
         if parents:
             data['p2'] = parents.pop(0)
 
@@ -269,9 +265,12 @@
     if parents:
         data['p1'] = parents.pop(0)
         if parents:
             data['p2'] = parents.pop(0)
 
-    data['filename'] = tmpname
+    if diffs_seen:
+        data['filename'] = tmpname
+    else:
+        os.unlink(tmpname)
     return data
 
 class patchmeta(object):