diff --git a/scapy/config.py b/scapy/config.py
index a1c44eb3a03c7e398254a9f477a083553fdb73c0..fc39b826eeb042f389c97b48020e6ce1db9e214a 100644
--- a/scapy/config.py
+++ b/scapy/config.py
@@ -238,6 +238,9 @@ extensions_paths: path or list of paths where extensions are to be looked for
     stats_classic_protocols = []
     stats_dot11_protocols = []
     netcache = NetCache()
+    load_layers = ["l2", "inet", "dhcp", "dns", "dot11", "gprs", "hsrp", "ip6", "ir", "isakmp", "l2tp",
+                   "mgcp", "mobileip", "netbios", "netflow", "ntp", "ppp", "radius", "rip", "rtp",
+                   "sebek", "skinny", "smb", "snmp", "tftp", "x509", "bluetooth" ]
     
 
 conf=Conf()
diff --git a/scapy/layers/all.py b/scapy/layers/all.py
index 0887be49301fcfa5316de28a5386fbeb3c3d35e5..f6518cd3a5133ee3057b7318751898fdf2737681 100644
--- a/scapy/layers/all.py
+++ b/scapy/layers/all.py
@@ -3,30 +3,18 @@
 ## Copyright (C) Philippe Biondi <phil@secdev.org>
 ## This program is published under a GPLv2 license
 
-from l2 import *
-from inet import *
-from dhcp import *
-from dns import *
-from dot11 import *
-from gprs import *
-from hsrp import *
-from ip6 import *
-from ir import *
-from isakmp import *
-from l2tp import *
-from mgcp import *
-from mobileip import *
-from netbios import *
-from netflow import *
-from ntp import *
-from ppp import *
-from radius import *
-from rip import *
-from rtp import *
-from sebek import *
-from skinny import *
-from smb import *
-from snmp import *
-from tftp import *
-from x509 import *
-from bluetooth import *
+from scapy.config import conf
+from scapy.error import log_loading
+
+def _import_star(m):
+    mod = __import__(m, globals(), locals())
+    for k,v in mod.__dict__.iteritems():
+        globals()[k] = v
+
+for l in conf.load_layers:
+    log_loading.debug("Loading layer %s" % l)
+    _import_star(l)
+
+
+
+