Index: trunk/src/main/java/omq/client/proxy/MultiProxymq.java
===================================================================
--- trunk/src/main/java/omq/client/proxy/MultiProxymq.java	(revision 74)
+++ trunk/src/main/java/omq/client/proxy/MultiProxymq.java	(revision 75)
@@ -4,4 +4,6 @@
 import java.lang.reflect.Method;
 import java.util.Properties;
+
+import org.apache.log4j.Logger;
 
 import com.rabbitmq.client.AMQP.BasicProperties;
@@ -20,4 +22,5 @@
  */
 public class MultiProxymq implements InvocationHandler {
+	private static final Logger logger = Logger.getLogger(MultiProxymq.class.getName());
 	private static final String multi = "multi#";
 
@@ -37,5 +40,5 @@
 		Properties env = broker.getEnvironment();
 		replyQueueName = env.getProperty(ParameterQueue.RPC_REPLY_QUEUE);
-		exchange = multi + env.getProperty(ParameterQueue.RPC_EXCHANGE);
+		exchange = multi + uid;
 		serializerType = env.getProperty(ParameterQueue.SERIALIZER_NAME, Serializer.JAVA);
 	}
@@ -55,4 +58,7 @@
 		broker.getChannel().basicPublish(exchange, routingkey, props, bytesRequest);
 
+		logger.debug("Proxymq: " + uid + " invokes " + methodName + ", corrID" + corrId + ", exchange: " + exchange + ", replyQueue: " + replyQueueName
+				+ ", serializerType: " + serializerType + ", multi call: " + request.isMulti() + ", async call: " + request.isAsync());
+
 		return null;
 	}
Index: trunk/src/main/java/omq/client/proxy/Proxymq.java
===================================================================
--- trunk/src/main/java/omq/client/proxy/Proxymq.java	(revision 74)
+++ trunk/src/main/java/omq/client/proxy/Proxymq.java	(revision 75)
@@ -90,5 +90,5 @@
 		env = broker.getEnvironment();
 		exchange = env.getProperty(ParameterQueue.RPC_EXCHANGE);
-		multiExchange = multi + exchange;
+		multiExchange = multi + uid;
 		replyQueueName = env.getProperty(ParameterQueue.RPC_REPLY_QUEUE);
 
Index: trunk/src/main/java/omq/common/message/Request.java
===================================================================
--- trunk/src/main/java/omq/common/message/Request.java	(revision 74)
+++ trunk/src/main/java/omq/common/message/Request.java	(revision 75)
@@ -23,11 +23,5 @@
 	}
 
-	public Request(String id, String method, Object[] params) {
-		this.id = id;
-		this.method = method;
-		this.params = params;
-	}
-
-	private Request(String id, String method, boolean async, Object[] params) {
+	public Request(String id, String method, boolean async, Object[] params) {
 		this.id = id;
 		this.method = method;
@@ -36,5 +30,5 @@
 	}
 
-	private Request(String id, String method, boolean async, Object[] params, boolean multi) {
+	public Request(String id, String method, boolean async, Object[] params, boolean multi) {
 		this.id = id;
 		this.method = method;
Index: trunk/src/main/java/omq/common/util/Serializers/GsonImp.java
===================================================================
--- trunk/src/main/java/omq/common/util/Serializers/GsonImp.java	(revision 74)
+++ trunk/src/main/java/omq/common/util/Serializers/GsonImp.java	(revision 75)
@@ -33,4 +33,5 @@
 		String id = jsonObj.get("id").getAsString();
 		String method = jsonObj.get("method").getAsString();
+		boolean async = jsonObj.get("async").getAsBoolean();
 
 		List<Class<?>> types = obj.getParams(method);
@@ -48,8 +49,7 @@
 				i++;
 			}
-
-			return new Request(id, method, arguments);
+			return new Request(id, method, async, arguments);
 		} catch (NullPointerException e) {
-			return new Request(id, method, null);
+			return new Request(id, method, async, null);
 		}
 	}
Index: trunk/src/main/java/omq/server/RemoteObject.java
===================================================================
--- trunk/src/main/java/omq/server/RemoteObject.java	(revision 74)
+++ trunk/src/main/java/omq/server/RemoteObject.java	(revision 75)
@@ -97,5 +97,5 @@
 				Delivery delivery = consumer.nextDelivery();
 
-				logger.debug(UID + " has received a message");
+				logger.debug(UID + " has received a message, serializer: " + delivery.getProperties().getType());
 
 				remoteWrapper.notifyDelivery(delivery);
@@ -219,5 +219,5 @@
 		String routingKey = UID;
 		// Multi info
-		String multiExchange = multi + exchange;
+		String multiExchange = multi + UID;
 
 		boolean durable = Boolean.parseBoolean(env.getProperty(ParameterQueue.DURABLE_QUEUES, "false"));
Index: trunk/src/main/resources/log4j.xml
===================================================================
--- trunk/src/main/resources/log4j.xml	(revision 74)
+++ trunk/src/main/resources/log4j.xml	(revision 75)
@@ -4,5 +4,5 @@
 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
     <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
-        <param name="Threshold" value="INFO" />
+        <param name="Threshold" value="DEBUG" />
         <layout class="org.apache.log4j.PatternLayout">
             <param name="ConversionPattern" value="%d{[yyyy-MM-dd HH:mm:ss]} %-5p %c:%L - %m%n" />
@@ -30,5 +30,5 @@
 
   <root> 
-    <priority value ="info" /> 
+    <priority value ="DEBUG" /> 
     <appender-ref ref="consoleAppender" />
     <appender-ref ref="A2" />  
Index: trunk/src/test/java/omq/test/workspace/WorkspaceTest.java
===================================================================
--- trunk/src/test/java/omq/test/workspace/WorkspaceTest.java	(revision 74)
+++ trunk/src/test/java/omq/test/workspace/WorkspaceTest.java	(revision 75)
@@ -20,7 +20,12 @@
 @RunWith(value = Parameterized.class)
 public class WorkspaceTest {
+	private String type;
 	private static Broker serverBroker;
 	private static Broker clientBroker1;
 	private static Broker clientBroker2;
+	private static RemoteWorkspaceImpl w1C1;
+	private static RemoteWorkspaceImpl w3C1;
+	private static RemoteWorkspaceImpl w1C2;
+	private static RemoteWorkspaceImpl w2C2;
 	private static String[] workspaces = { "w1", "w2", "w3" };
 	private static RemoteWorkspace[] remoteWorks = new RemoteWorkspace[3];
@@ -28,4 +33,5 @@
 	// In this case the Constructor acts as a server
 	public WorkspaceTest(String type) throws Exception {
+		this.type = type;
 		Properties env = new Properties();
 		env.setProperty(ParameterQueue.USER_NAME, "guest");
@@ -75,4 +81,18 @@
 		clientBroker2 = new Broker(env);
 
+		// Client 1 will subscribe to changes in the workspaces w1 and w3
+		w1C1 = new RemoteWorkspaceImpl();
+		w3C1 = new RemoteWorkspaceImpl();
+
+		clientBroker1.bind(workspaces[0], w1C1);
+		clientBroker1.bind(workspaces[2], w3C1);
+
+		// Client 2 will subscribe to changes in the workspaces w1 and w2
+		w1C2 = new RemoteWorkspaceImpl();
+		w2C2 = new RemoteWorkspaceImpl();
+
+		clientBroker2.bind(workspaces[0], w1C2);
+		clientBroker2.bind(workspaces[1], w2C2);
+
 		System.out.println("Client 1 & client2 started");
 	}
@@ -85,20 +105,7 @@
 	@Test
 	public void test() throws Exception {
+		System.out.println("Starting test: " + type);
 		String expected = null;
 		String actual = null;
-
-		// Client 1 will subscribe to changes in the workspaces w1 and w3
-		RemoteWorkspaceImpl w1C1 = new RemoteWorkspaceImpl();
-		RemoteWorkspaceImpl w3C1 = new RemoteWorkspaceImpl();
-
-		clientBroker1.bind(workspaces[0], w1C1);
-		clientBroker1.bind(workspaces[2], w3C1);
-
-		// Client 2 will subscribe to changes in the workspaces w1 and w2
-		RemoteWorkspaceImpl w1C2 = new RemoteWorkspaceImpl();
-		RemoteWorkspaceImpl w2C2 = new RemoteWorkspaceImpl();
-
-		clientBroker2.bind(workspaces[0], w1C2);
-		clientBroker2.bind(workspaces[2], w2C2);
 
 		// The server will notify a change in the w2
