Index: branches/supervisor/src/main/java/omq/client/annotation/MultiMethod.java
===================================================================
--- branches/supervisor/src/main/java/omq/client/annotation/MultiMethod.java	(revision 103)
+++ branches/supervisor/src/main/java/omq/client/annotation/MultiMethod.java	(revision 104)
@@ -15,10 +15,3 @@
 @Target(ElementType.METHOD)
 public @interface MultiMethod {
-	/**
-	 * If @MultiMethod is followed by @SyncMethod waitNum indicates how many
-	 * responses we will wait for.
-	 * 
-	 * @return length of the array of responses we are waiting for.
-	 */
-	int waitNum() default 1;
 }
Index: branches/supervisor/src/main/java/omq/client/proxy/Proxymq.java
===================================================================
--- branches/supervisor/src/main/java/omq/client/proxy/Proxymq.java	(revision 103)
+++ branches/supervisor/src/main/java/omq/client/proxy/Proxymq.java	(revision 104)
@@ -4,5 +4,7 @@
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -201,5 +203,5 @@
 				publishMessage(request, replyQueueName);
 				if (request.isMulti()) {
-					return getResults(corrId, request.getWait(), timeout, type);
+					return getResults(corrId, timeout, type);
 				} else {
 					return getResult(corrId, timeout, type);
@@ -228,9 +230,7 @@
 		String methodName = method.getName();
 		boolean multi = false;
-		int wait = 0;
 
 		if (method.getAnnotation(MultiMethod.class) != null) {
 			multi = true;
-			wait = method.getAnnotation(MultiMethod.class).waitNum();
 		}
 
@@ -246,5 +246,5 @@
 				timeout = sync.timeout();
 			}
-			return Request.newSyncRequest(corrId, methodName, arguments, retries, timeout, multi, wait);
+			return Request.newSyncRequest(corrId, methodName, arguments, retries, timeout, multi);
 		} else {
 			return Request.newAsyncRequest(corrId, methodName, arguments, multi);
@@ -291,6 +291,4 @@
 	 * @param corrId
 	 *            - Correlation Id of the request
-	 * @param wait
-	 *            - Array length
 	 * @param timeout
 	 *            - Timeout read in @SyncMethod.timeout(). If the timeout is set
@@ -302,10 +300,10 @@
 	 * @throws Exception
 	 */
-	private Object getResults(String corrId, int wait, long timeout, Class<?> type) throws Exception {
+	private Object getResults(String corrId, long timeout, Class<?> type) throws Exception {
 		Response resp = null;
 		// Get the component type of an array
 		Class<?> actualType = type.getComponentType();
 
-		Object array = Array.newInstance(actualType, wait);
+		List<Object> list = new ArrayList<Object>();
 
 		int i = 0;
@@ -313,5 +311,5 @@
 		long start = System.currentTimeMillis();
 
-		while (i < wait) {
+		while (true) {
 			synchronized (results) {
 				// Due to we are using notifyAll(), we need to control the real
@@ -322,14 +320,26 @@
 				}
 				if ((timeout - localTimeout) <= 0) {
-					throw new TimeoutException("Timeout exception time: " + timeout);
+					break;
 				}
 				// Remove the corrId to receive new replies
 				resp = serializer.deserializeResponse(results.remove(corrId), actualType);
-				Array.set(array, i, resp.getResult());
+				list.add(resp.getResult());
 			}
 			i++;
 		}
+
+		if (i == 0) {
+			results.remove(corrId);
+			throw new TimeoutException("Timeout exception time: " + timeout);
+		}
+
 		synchronized (results) {
 			results.put(corrId, null);
+		}
+
+		Object array = Array.newInstance(actualType, i);
+		i = 0;
+		for (Object o : list) {
+			Array.set(array, i++, o);
 		}
 
Index: branches/supervisor/src/main/java/omq/common/message/Request.java
===================================================================
--- branches/supervisor/src/main/java/omq/common/message/Request.java	(revision 103)
+++ branches/supervisor/src/main/java/omq/common/message/Request.java	(revision 104)
@@ -25,5 +25,4 @@
 
 	private transient boolean multi;
-	private transient int wait;
 	private transient long timeout;
 	private transient int retries;
@@ -78,13 +77,10 @@
 	 * @param multi
 	 *            - If the method is multi
-	 * @param wait
-	 *            - If the method is multi how many responses will be listened
 	 * @return - new SyncRequest
 	 */
-	public static Request newSyncRequest(String id, String method, Object[] params, int retries, long timeout, boolean multi, int wait) {
+	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);
-		req.setWait(wait);
 		return req;
 	}
@@ -163,10 +159,3 @@
 	}
 
-	public int getWait() {
-		return wait;
-	}
-
-	public void setWait(int wait) {
-		this.wait = wait;
-	}
 }
Index: branches/supervisor/src/test/java/omq/test/multiProcess/NumberClient.java
===================================================================
--- branches/supervisor/src/test/java/omq/test/multiProcess/NumberClient.java	(revision 103)
+++ branches/supervisor/src/test/java/omq/test/multiProcess/NumberClient.java	(revision 104)
@@ -24,5 +24,5 @@
 	public void setMultiNumber(int x);
 
-	@MultiMethod(waitNum = 2)
+	@MultiMethod()
 	@SyncMethod(timeout = 1000)
 	public int[] getMultiNumber();
Index: branches/supervisor/target/classes/log4j.xml
===================================================================
--- branches/supervisor/target/classes/log4j.xml	(revision 104)
+++ branches/supervisor/target/classes/log4j.xml	(revision 104)
@@ -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="INFO" />
+        <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 ="INFO" /> 
+    <appender-ref ref="consoleAppender" />
+    <appender-ref ref="A2" />  
+  </root>
+  
+</log4j:configuration>
Index: branches/supervisor/target/classes/log4j.xml.svntmp
===================================================================
--- branches/supervisor/target/classes/log4j.xml.svntmp	(revision 104)
+++ branches/supervisor/target/classes/log4j.xml.svntmp	(revision 104)
@@ -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="INFO" />
+        <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 ="INFO" /> 
+    <appender-ref ref="consoleAppender" />
+    <appender-ref ref="A2" />  
+  </root>
+  
+</log4j:configuration>
