diff --git a/scapy/utils.py b/scapy/utils.py
index c3febf59e2bb97d9f1d61172b8e900cab20c17c8..59a5403c371544c1bcd5b0b79ce74973e966e3d4 100644
--- a/scapy/utils.py
+++ b/scapy/utils.py
@@ -839,17 +839,23 @@ class RawPcapWriter:
         
         self.linktype = linktype
         self.header_present = 0
-        self.append=append
+        self.append = append
         self.gz = gz
         self.endian = endianness
-        self.filename=filename
-        self.sync=sync
+        self.sync = sync
         bufsz=4096
         if sync:
-            bufsz=0
+            bufsz = 0
+
+        if isinstance(filename, basestring):
+            self.filename = filename
+            self.f = [open,gzip.open][gz](filename,append and "ab" or "wb", gz and 9 or bufsz)
+        else:
+            self.f = filename
+            self.filename = (filename.name
+                             if hasattr(filename, "name") else
+                             "No name")
 
-        self.f = [open,gzip.open][gz](filename,append and "ab" or "wb", gz and 9 or bufsz)
-        
     def fileno(self):
         return self.f.fileno()