diff --git a/scapy/fields.py b/scapy/fields.py
index 2b2896686470e743d0076789a3d350e5141dd918..59d26c7db5a46757922dce3fc4b0ff79901a95e7 100644
--- a/scapy/fields.py
+++ b/scapy/fields.py
@@ -181,39 +181,6 @@ class MACField(Field):
         return RandMAC()
 
 
-class Dot11AddrMACField(MACField):
-    def is_applicable(self, pkt):
-        return 1
-    def addfield(self, pkt, s, val):
-        if self.is_applicable(pkt):
-            return MACField.addfield(self, pkt, s, val)
-        else:
-            return s        
-    def getfield(self, pkt, s):
-        if self.is_applicable(pkt):
-            return MACField.getfield(self, pkt, s)
-        else:
-            return s,None
-
-class Dot11Addr2MACField(Dot11AddrMACField):
-    def is_applicable(self, pkt):
-        if pkt.type == 1:
-            return pkt.subtype in [ 0xb, 0xa, 0xe, 0xf] # RTS, PS-Poll, CF-End, CF-End+CF-Ack
-        return 1
-
-class Dot11Addr3MACField(Dot11AddrMACField):
-    def is_applicable(self, pkt):
-        if pkt.type in [0,2]:
-            return 1
-        return 0
-
-class Dot11Addr4MACField(Dot11AddrMACField):
-    def is_applicable(self, pkt):
-        if pkt.type == 2:
-            if pkt.FCfield & 0x3 == 0x3: # To-DS and From-DS are set
-                return 1
-        return 0
-    
 class IPField(Field):
     def __init__(self, name, default):
         Field.__init__(self, name, default, "4s")
diff --git a/scapy/layers/dot11.py b/scapy/layers/dot11.py
index 0159eac0762b9179c0422307faa516793f268347..15d536657f56b808c47b1f966c0c7926c8abcdd7 100644
--- a/scapy/layers/dot11.py
+++ b/scapy/layers/dot11.py
@@ -5,6 +5,45 @@ from scapy.fields import *
 from scapy.plist import PacketList
 from scapy.layers.l2 import *
 
+### Fields
+
+class Dot11AddrMACField(MACField):
+    def is_applicable(self, pkt):
+        return 1
+    def addfield(self, pkt, s, val):
+        if self.is_applicable(pkt):
+            return MACField.addfield(self, pkt, s, val)
+        else:
+            return s        
+    def getfield(self, pkt, s):
+        if self.is_applicable(pkt):
+            return MACField.getfield(self, pkt, s)
+        else:
+            return s,None
+
+class Dot11Addr2MACField(Dot11AddrMACField):
+    def is_applicable(self, pkt):
+        if pkt.type == 1:
+            return pkt.subtype in [ 0xb, 0xa, 0xe, 0xf] # RTS, PS-Poll, CF-End, CF-End+CF-Ack
+        return 1
+
+class Dot11Addr3MACField(Dot11AddrMACField):
+    def is_applicable(self, pkt):
+        if pkt.type in [0,2]:
+            return 1
+        return 0
+
+class Dot11Addr4MACField(Dot11AddrMACField):
+    def is_applicable(self, pkt):
+        if pkt.type == 2:
+            if pkt.FCfield & 0x3 == 0x3: # To-DS and From-DS are set
+                return 1
+        return 0
+    
+
+### Layers
+
+
 class PrismHeader(Packet):
     """ iwpriv wlan0 monitor 3 """
     name = "Prism header"