Retouch my last change after a comment on style from Guido.
diff --git a/Lib/gzip.py b/Lib/gzip.py
index e7f6737..73bc550 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -149,18 +149,15 @@
     def _write_gzip_header(self):
         self.fileobj.write(b'\037\213')             # magic header
         self.fileobj.write(b'\010')                 # compression method
-        fname = self.name
-        if fname.endswith(".gz"):
-            fname = fname[:-3]
-        flags = 0
-
-        # RFC 1952 requires the FNAME field to be Latin-1. Do not
-        # include filenames that cannot be represented that way.
         try:
-            fname = fname.encode('latin-1')
+            # RFC 1952 requires the FNAME field to be Latin-1. Do not
+            # include filenames that cannot be represented that way.
+            fname = self.name.encode('latin-1')
+            if fname.endswith(b'.gz'):
+                fname = fname[:-3]
         except UnicodeEncodeError:
-            fname = ''
-
+            fname = b''
+        flags = 0
         if fname:
             flags = FNAME
         self.fileobj.write(chr(flags).encode('latin-1'))