Index: trunk/src/main/java/omq/client/annotation/MultiMethod.java
===================================================================
--- trunk/src/main/java/omq/client/annotation/MultiMethod.java	(revision 54)
+++ trunk/src/main/java/omq/client/annotation/MultiMethod.java	(revision 54)
@@ -0,0 +1,12 @@
+package omq.client.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface MultiMethod {
+	int waitNum() default 1;
+}
Index: trunk/src/main/java/omq/client/listener/ResponseListener.java
===================================================================
--- trunk/src/main/java/omq/client/listener/ResponseListener.java	(revision 53)
+++ trunk/src/main/java/omq/client/listener/ResponseListener.java	(revision 54)
@@ -55,4 +55,5 @@
 	@Override
 	public void run() {
+		logger.info("ResponseListener started");
 		Delivery delivery;
 		String uid_request;
@@ -122,4 +123,5 @@
 
 		channel.queueDeclare(reply_queue, durable, false, false, args);
+		logger.info("ResponseListener creating queue: " + reply_queue + ", durable: " + durable);
 
 		// Declare a new consumer
Index: trunk/src/main/java/omq/client/proxy/Proxymq.java
===================================================================
--- trunk/src/main/java/omq/client/proxy/Proxymq.java	(revision 53)
+++ trunk/src/main/java/omq/client/proxy/Proxymq.java	(revision 54)
@@ -15,4 +15,5 @@
 import omq.Remote;
 import omq.client.annotation.AsyncMethod;
+import omq.client.annotation.MultiMethod;
 import omq.client.annotation.SyncMethod;
 import omq.client.listener.ResponseListener;
@@ -133,7 +134,4 @@
 		Request request = createRequest(method, arguments);
 
-		// Log.saveTimeSendRequestLog("Client-time-request", request.getId(),
-		// method.getName(), timeStart);
-
 		Object response = null;
 		// Publish the request
@@ -144,8 +142,4 @@
 			logger.debug("Publish sync request -> " + request.getId());
 			response = publishSyncRequest(request, method.getReturnType());
-
-			// long timeEnd = (new Date()).getTime();
-			// Log.saveTimeSendRequestLog("Client-time-response",
-			// request.getId(), method.getName(), timeEnd);
 		}
 
@@ -168,5 +162,4 @@
 		// channel.basicPublish(exchange, routingkey, props, bytesRequest);
 		broker.getChannel().basicPublish(exchange, routingkey, props, bytesRequest);
-		// Log.saveLog("Client-Serialize", bytesRequest);
 	}
 
@@ -203,4 +196,9 @@
 		String corrId = java.util.UUID.randomUUID().toString();
 		String methodName = method.getName();
+		boolean multi = false;
+
+		if (method.getAnnotation(MultiMethod.class) != null) {
+			multi = true;
+		}
 
 		// Since we need to know whether the method is async and if it has to
@@ -217,5 +215,5 @@
 			return Request.newSyncRequest(corrId, methodName, arguments, retries, timeout);
 		} else {
-			return Request.newAsyncRequest(corrId, methodName, arguments);
+			return Request.newAsyncRequest(corrId, methodName, arguments, multi);
 		}
 	}
@@ -237,5 +235,4 @@
 			}
 			resp = serializer.deserializeResponse(results.get(corrId), type);
-			// Log.saveLog("Client-Deserialize", results.get(corrId));
 
 			// Remove and indicate the key exists (a hashmap can contain a null
