Index: trunk/src/main/java/omq/client/proxy/Proxymq.java
===================================================================
--- trunk/src/main/java/omq/client/proxy/Proxymq.java	(revision 54)
+++ trunk/src/main/java/omq/client/proxy/Proxymq.java	(revision 55)
@@ -48,4 +48,5 @@
 	private static final long serialVersionUID = 1L;
 	private static final Logger logger = Logger.getLogger(Proxymq.class.getName());
+	private static final String multi = "multi#";
 	private static Map<String, Object> proxies = new Hashtable<String, Object>();
 
@@ -56,5 +57,4 @@
 	private transient EventDispatcher dispatcher;
 	private transient Serializer serializer;
-	// private transient Channel channel;
 	private transient Properties env;
 	private transient Map<String, byte[]> results;
@@ -111,6 +111,4 @@
 	@Override
 	public Object invoke(Object proxy, Method method, Object[] arguments) throws Throwable {
-		// long timeStart = (new Date()).getTime();
-
 		// Local methods only
 		String methodName = method.getName();
@@ -151,6 +149,14 @@
 
 		// Get the environment properties
-		String exchange = env.getProperty(ParameterQueue.RPC_EXCHANGE);
-		String routingkey = this.uid;
+		String exchange;
+		String routingkey;
+
+		if (request.isMulti()) {
+			exchange = multi + env.getProperty(ParameterQueue.RPC_EXCHANGE);
+			routingkey = "";
+		} else {
+			exchange = env.getProperty(ParameterQueue.RPC_EXCHANGE);
+			routingkey = uid;
+		}
 
 		// Add the correlation ID and create a replyTo property
@@ -159,6 +165,4 @@
 		// Publish the message
 		byte[] bytesRequest = serializer.serialize(serializerType, request);
-		// TODO See this
-		// channel.basicPublish(exchange, routingkey, props, bytesRequest);
 		broker.getChannel().basicPublish(exchange, routingkey, props, bytesRequest);
 	}
@@ -213,5 +217,5 @@
 				timeout = sync.timeout();
 			}
-			return Request.newSyncRequest(corrId, methodName, arguments, retries, timeout);
+			return Request.newSyncRequest(corrId, methodName, arguments, retries, timeout, multi);
 		} else {
 			return Request.newAsyncRequest(corrId, methodName, arguments, multi);
Index: trunk/src/main/java/omq/common/message/Request.java
===================================================================
--- trunk/src/main/java/omq/common/message/Request.java	(revision 54)
+++ trunk/src/main/java/omq/common/message/Request.java	(revision 55)
@@ -35,6 +35,10 @@
 	}
 
-	public Request(String id2, String method2, boolean b, Object[] params2, boolean multi2) {
-		// TODO Auto-generated constructor stub
+	private Request(String id, String method, boolean async, Object[] params, boolean multi) {
+		this.id = id;
+		this.method = method;
+		this.async = async;
+		this.params = params;
+		this.multi = multi;
 	}
 
@@ -43,6 +47,6 @@
 	}
 
-	public static Request newSyncRequest(String id, String method, Object[] params, int retries, long timeout) {
-		Request req = new Request(id, method, false, params);
+	public static Request newSyncRequest(String id, String method, Object[] params, int retries, long timeout, boolean multi) {
+		Request req = new Request(id, method, false, params, multi);
 		req.setRetries(retries);
 		req.setTimeout(timeout);
Index: trunk/src/main/java/omq/server/RemoteObject.java
===================================================================
--- trunk/src/main/java/omq/server/RemoteObject.java	(revision 54)
+++ trunk/src/main/java/omq/server/RemoteObject.java	(revision 55)
@@ -223,4 +223,8 @@
 		String queue = UID;
 		String routingKey = UID;
+		// Multi info
+		String multiExchange = multi + exchange;
+		String multiQueue = UID + System.currentTimeMillis();
+
 		boolean durable = Boolean.parseBoolean(env.getProperty(ParameterQueue.DURABLE_QUEUES, "false"));
 
@@ -231,8 +235,10 @@
 		logger.info("RemoteObject: " + UID + " declaring direct exchange: " + exchange + ", Queue: " + queue);
 		channel.exchangeDeclare(exchange, "direct");
-		channel.exchangeDeclare(multi + exchange, "fanout");
 		channel.queueDeclare(queue, durable, false, false, null);
 		channel.queueBind(queue, exchange, routingKey);
-		channel.queueBind(queue, multi + exchange, routingKey);
+
+		channel.exchangeDeclare(multiExchange, "fanout");
+		channel.queueDeclare(multiQueue, durable, false, false, null);
+		channel.queueBind(multiQueue, multiExchange, "");
 
 		// Declare the event topic fanout
@@ -243,4 +249,5 @@
 		consumer = new QueueingConsumer(channel);
 		channel.basicConsume(queue, true, consumer);
+		channel.basicConsume(multiQueue, true, consumer);
 	}
 
Index: trunk/src/test/java/omq/test/multiProcess/MultiProcessTest.java
===================================================================
--- trunk/src/test/java/omq/test/multiProcess/MultiProcessTest.java	(revision 54)
+++ trunk/src/test/java/omq/test/multiProcess/MultiProcessTest.java	(revision 55)
@@ -90,4 +90,5 @@
 		assertEquals(x, b);
 		remoteNumber.setNumber(0);
+		remoteNumber.setNumber(0);
 	}
 
Index: trunk/target/classes/log4j.xml
===================================================================
--- trunk/target/classes/log4j.xml	(revision 55)
+++ trunk/target/classes/log4j.xml	(revision 55)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+    <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
+        <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" />
+        </layout>
+    </appender>
+
+    <appender class="org.apache.log4j.rolling.RollingFileAppender" name="A2">
+        <param value="true" name="append"/>
+        <param value="logs/objectmq-temp.log" name="File"/>
+
+        <rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy">
+            <param name="fileNamePattern" value="logs/objectmq-%i.log" />
+            <param name="MinIndex" value="0"/> 
+            <param name="MaxIndex" value="1"/> 
+        </rollingPolicy>
+        
+        <triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy"> 
+            <param name="MaxFileSize" value="10000000"/> 
+        </triggeringPolicy> 
+        
+        <layout class="org.apache.log4j.PatternLayout">
+            <param value="%d{[yyyy-MM-dd HH:mm:ss]} %-5p %c:%L - %m%n" name="ConversionPattern"/>
+        </layout>        
+    </appender>
+
+  <root> 
+    <priority value ="debug" /> 
+    <appender-ref ref="consoleAppender" />
+    <appender-ref ref="A2" />  
+  </root>
+  
+</log4j:configuration>
