diff --git a/LCS/Messaging/python/messaging/RPC.py b/LCS/Messaging/python/messaging/RPC.py
index ac54343d943105c75f4aa04c9e9023a8cb8a5f98..800444fd632451fb9bbf82fa973e292625c5378d 100644
--- a/LCS/Messaging/python/messaging/RPC.py
+++ b/LCS/Messaging/python/messaging/RPC.py
@@ -59,13 +59,19 @@ class RPC():
         if (isinstance(answer,ReplyMessage)):
            status={}
            exception=None
+           errmsg=None
+           errbacktrace=None
            try:
               if (answer.status!="OK"):
                  status["state"]=answer.status
                  status["errmsg"]=answer.errmsg
                  status["backtrace"]=answer.backtrace
-                 if (answer.exception!=""):
-                    exception=pickle.loads(answer.exception)
+                 #if (answer.exception!=""):
+                 #    exception=pickle.loads(answer.exception)
+                 if (answer.errmsg!=""):
+                    errmsg=answer.errmsg
+                 if (answer.backtrace!=""):
+                    errbacktrace=answer.backtrace
               else:
                  status="OK"
            except Exception as e:
@@ -74,8 +80,17 @@ class RPC():
               status["backtrace"]=""
            else:
               if (self.ForwardExceptions==True):
-                if (exception!=None):
-                  raise exception[0],exception[1],exception[2]
+                #if (exception!=None):
+                #  raise exception[0],exception[1],exception[2]
+                #else:
+                if (errmsg!=None):
+                    excep_mod=__import__("exceptions")
+                    excep_class_= getattr(excep_mod,errmsg.split(':')[0],None)
+                    if (excep_class_!=None):
+                      instance=excep_class_(errbacktrace)
+                      raise(instance)
+                    else:
+                      raise(Exception(errmsg))
         try:
            answer=(answer.content,status)
         except Exception as e:
diff --git a/LCS/Messaging/python/messaging/Service.py b/LCS/Messaging/python/messaging/Service.py
index 921eca9178d41e70f793dc1532a40e24c75790cb..6e969de61dae256b430d815ae8138c81a4f0446e 100644
--- a/LCS/Messaging/python/messaging/Service.py
+++ b/LCS/Messaging/python/messaging/Service.py
@@ -100,7 +100,7 @@ class Service():
              status="unknown"
              backtrace=None
              errtxt=None
-             exception=None
+             #exception=None
 
              # Keep track of number of processed messages
              self.counter[index]+=1
@@ -131,19 +131,27 @@ class Service():
                   print errtxt
                   print backtrace
                 replymessage=None
-                exception=pickle.dumps(exception)
+                #exception=pickle.dumps(exc_info)
 
 
              self._debug("Done call")
-             # Compile Event message from reply and status.
+             # Compose Reply message from reply and status.
              ToSend=ReplyMessage(replymessage,msg.reply_to)
              ToSend.status=status
-             if (errtxt!=None):
-                ToSend.errmsg=errtxt
-             if (backtrace!=None):
-                ToSend.backtrace=backtrace
-             if (exception!=None):
-                ToSend.exception=exception
+             if (status!="OK"):
+               if (errtxt!=None):
+                  ToSend.errmsg=errtxt
+               else:
+                  ToSend.errmsg=""
+               if (backtrace!=None):
+                  ToSend.backtrace=backtrace
+               else:
+                  ToSend.backtrace=""
+               #if (exception!=None):
+               #  ToSend.exception=exception
+               else:
+                  ToSend.exception=""
+
 
              # ensure to deliver at the destination in the reply_to field
              #ToSend.subject=msg.reply_to