diff --git a/sensors/protocol.py b/sensors/protocol.py
index 5d3bf65..cfdd93e 100644
--- a/sensors/protocol.py
+++ b/sensors/protocol.py
@@ -30,6 +30,30 @@
     def unpack(self, data):
         return pickle.loads(data)
 
+try:
+    # try to use full-function lib
+    import msgpack
+
+    class mgspackSerializer(ISensortResultsSerializer):
+        def pack(self, data):
+            return msgpack.packb(data)
+
+        def unpack(self, data):
+            return msgpack.unpackb(data)
+
+    MSGPackSerializer = mgspackSerializer
+except ImportError:
+    # use local lib, if failed import
+    import umsgpack
+
+    class umsgspackSerializer(ISensortResultsSerializer):
+        def pack(self, data):
+            return umsgpack.packb(data)
+
+        def unpack(self, data):
+            return umsgpack.unpackb(data)
+
+    MSGPackSerializer = umsgspackSerializer
 
 # ------------------------------------- Transports ---------------------------
 
@@ -108,7 +132,7 @@
 
 
 class HugeUDPTransport(ITransport, cp_transport.Sender):
-    def __init__(self, receiver, ip, port):
+    def __init__(self, receiver, ip, port, packer_cls):
         cp_transport.Sender.__init__(self, port=port, host=ip)
         if receiver:
             self.bind()
@@ -148,7 +172,8 @@
                             packer_cls=PickleSerializer)
     elif parsed_uri.scheme == 'hugeudp':
         ip, port = parsed_uri.netloc.split(":")
-        return HugeUDPTransport(receiver, ip=ip, port=int(port))
+        return HugeUDPTransport(receiver, ip=ip, port=int(port),
+                            packer_cls=MSGPackSerializer)
     else:
         templ = "Can't instantiate transport from {0!r}"
         raise ValueError(templ.format(uri))
