diff --git a/scapy/layers/bluetooth.py b/scapy/layers/bluetooth.py
index 8b7b8cffe557d0723a6ae516629237e70f9b9087..590e70ebb6216def3864f4b993e9b092d85ea375 100644
--- a/scapy/layers/bluetooth.py
+++ b/scapy/layers/bluetooth.py
@@ -66,21 +66,21 @@ class HCI_ACL_Hdr(Packet):
             l = len(p)-4
             p = p[:2]+chr(l&0xff)+chr((l>>8)&0xff)+p[4:]
         return p
-                    
+
 
 class L2CAP_Hdr(Packet):
     name = "L2CAP header"
     fields_desc = [ LEShortField("len",None),
             LEShortEnumField("cid",0,{1:"control", 4:"attribute"}),]
-    
+
     def post_build(self, p, pay):
         p += pay
         if self.len is None:
             l = len(pay)
             p = chr(l&0xff)+chr((l>>8)&0xff)+p[2:]
         return p
-                    
-                
+
+
 
 class L2CAP_CmdHdr(Packet):
     name = "L2CAP command header"
@@ -128,7 +128,7 @@ class L2CAP_CmdRej(Packet):
     name = "L2CAP Command Rej"
     fields_desc = [ LEShortField("reason",0),
                     ]
-    
+
 
 class L2CAP_ConfReq(Packet):
     name = "L2CAP Conf Req"
@@ -158,7 +158,7 @@ class L2CAP_DisconnResp(Packet):
     def answers(self, other):
         return self.scid == other.scid
 
-    
+
 
 class L2CAP_InfoReq(Packet):
     name = "L2CAP Info Req"
@@ -323,7 +323,7 @@ class HCI_Command_Hdr(Packet):
             l = len(p)-3
             p = p[:2]+chr(l&0xff)+p[3:]
         return p
- 
+
 class HCI_Cmd_Reset(Packet):
     name = "Reset"
 
@@ -565,12 +565,12 @@ class BluetoothL2CAPSocket(SuperSocket):
         s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_RAW,
                           socket.BTPROTO_L2CAP)
         s.connect((peer,0))
-        
+
         self.ins = self.outs = s
 
     def recv(self, x=MTU):
         return L2CAP_CmdHdr(self.ins.recv(x))
-    
+
 
 class BluetoothHCISocket(SuperSocket):
     desc = "read/write on a BlueTooth HCI socket"
@@ -582,7 +582,7 @@ class BluetoothHCISocket(SuperSocket):
         s.bind((iface,))
         self.ins = self.outs = s
 #        s.connect((peer,0))
-        
+
 
     def recv(self, x):
         return HCI_Hdr(self.ins.recv(x))
@@ -594,6 +594,12 @@ class sockaddr_hci(Structure):
         ("hci_channel",     c_ushort),
     ]
 
+class BluetoothSocketError(BaseException):
+    pass
+
+class BluetoothCommandError(BaseException):
+    pass
+
 class BluetoothUserSocket(SuperSocket):
     desc = "read/write H4 over a Bluetooth user channel"
     def __init__(self, adapter=0):
@@ -621,7 +627,7 @@ class BluetoothUserSocket(SuperSocket):
 
         s = socket_c(31, 3, 1) # (AF_BLUETOOTH, SOCK_RAW, HCI_CHANNEL_USER)
         if s < 0:
-            raise Exception("Unable to open PF_BLUETOOTH socket")
+            raise BluetoothSocketError("Unable to open PF_BLUETOOTH socket")
 
         sa = sockaddr_hci()
         sa.sin_family = 31  # AF_BLUETOOTH
@@ -630,7 +636,7 @@ class BluetoothUserSocket(SuperSocket):
 
         r = bind(s, sockaddr_hcip(sa), sizeof(sa))
         if r != 0:
-            raise Exception("Unable to bind")
+            raise BluetoothSocketError("Unable to bind")
 
         self.ins = self.outs = socket.fromfd(s, 31, 3, 1)
 
@@ -641,7 +647,7 @@ class BluetoothUserSocket(SuperSocket):
             r = self.recv()
             if r.code == 0xe and r.opcode == opcode:
                 if r.status != 0:
-                    raise Exception("Command %x failed with %x" % (opcode, r.status))
+                    raise BluetoothCommandError("Command %x failed with %x" % (opcode, r.status))
                 return r
 
     def recv(self, x=512):
@@ -672,7 +678,7 @@ def srbt1(peer, pkts, *args, **kargs):
     a,b = srbt(peer, pkts, *args, **kargs)
     if len(a) > 0:
         return a[0][1]
-        
-    
+
+
 
 conf.BTsocket = BluetoothL2CAPSocket