Index: /work/xfire/branches/xfire-1.2.4/xfire-core/src/main/org/codehaus/xfire/client/Client.java
===================================================================
--- /work/xfire/branches/xfire-1.2.4/xfire-core/src/main/org/codehaus/xfire/client/Client.java	(revision 2088)
+++ /work/xfire/branches/xfire-1.2.4/xfire-core/src/main/org/codehaus/xfire/client/Client.java	(working copy)
@@ -374,9 +374,14 @@
         
         try
         {
-            HandlerPipeline inPipe = new HandlerPipeline(getXFire().getInPhases());
-            inPipe.addHandlers(getInHandlers());
-            inPipe.addHandlers(getTransport().getInHandlers());
+        	//the Client object in the context is not necessary "this" (client.onReceive())
+        	// we need to invoke the handlers from the client in the context not "this"
+        	// was creating issues when used in multi-threaded
+        	Client contextClient = context.getClient();
+        	
+            HandlerPipeline inPipe = new HandlerPipeline(contextClient.getXFire().getInPhases());
+            inPipe.addHandlers(contextClient.getInHandlers());
+            inPipe.addHandlers(contextClient.getTransport().getInHandlers());
             context.setInPipeline(inPipe);
             
             inPipe.invoke(context);


