diff --git a/scapy/base_classes.py b/scapy/base_classes.py
index 1d499653845ca6c2eddd629b584630785f3185ec..83f8bff18b69f1c188861bc17e0a2d03c593b7c9 100644
--- a/scapy/base_classes.py
+++ b/scapy/base_classes.py
@@ -210,7 +210,12 @@ class Packet_metaclass(type):
 
     def __call__(cls, *args, **kargs):
         if "dispatch_hook" in cls.__dict__:
-            cls =  cls.dispatch_hook(*args, **kargs)
+            try:
+                cls = cls.dispatch_hook(*args, **kargs)
+            except:
+                if conf.debug_dissector:
+                    raise
+                cls = Raw
         i = cls.__new__(cls, cls.__name__, cls.__bases__, cls.__dict__)
         i.__init__(*args, **kargs)
         return i