diff --git a/lib/python/labcomm2014/LabComm.py b/lib/python/labcomm2014/LabComm.py
index b00f0ee83559baadd9d6905f7a1d72bf4858e4c3..86ce169d097daa5c8fac48abba93a29f66ba0e2c 100644
--- a/lib/python/labcomm2014/LabComm.py
+++ b/lib/python/labcomm2014/LabComm.py
@@ -917,8 +917,8 @@ class Decoder(Codec):
         self.version = version
         self.handlers = {}
 
-    def register_handler(self, sig, handler):
-        self.handlers[str(sig)] = handler
+    def register_handler(self, decl, handler):
+        self.handlers[decl] = handler
 
     def unpack(self, format):
         size = packer.calcsize(format)
@@ -955,8 +955,8 @@ class Decoder(Codec):
              data,decl = self.decode()
         if decl:
             if data != None:
-                if str(decl) in self.handlers:
-                    handler = self.handlers[str(decl)]
+                if decl in self.handlers:
+                    handler = self.handlers[decl]
                     handler(data)
                 else:
                     print ("No handler for %s" % decl.name )