diff --git a/scapy/packet.py b/scapy/packet.py
index 36ce3890d7499c363912ecba8a0bc777b76b3a6c..bab03eef6838ce5203aa68cd62bcca5897a3890f 100644
--- a/scapy/packet.py
+++ b/scapy/packet.py
@@ -304,8 +304,8 @@ class Packet(BasePacket):
     def copy_fields_dict(self, fields):
         if fields is None:
             return None
-        return {fname: self.copy_field_value(fname, fval)
-                for fname, fval in fields.iteritems()}
+        return dict([fname, self.copy_field_value(fname, fval)]
+                    for fname, fval in fields.iteritems())
     def self_build(self, field_pos_list=None):
         if self.raw_packet_cache is not None:
             for fname, fval in self.raw_packet_cache_fields.iteritems():