Index: /trunk/src/main/java/omq/client/proxy/MultiProxymq.java
===================================================================
--- /trunk/src/main/java/omq/client/proxy/MultiProxymq.java	(revision 77)
+++ /trunk/src/main/java/omq/client/proxy/MultiProxymq.java	(revision 78)
@@ -39,5 +39,4 @@
 
 		Properties env = broker.getEnvironment();
-		replyQueueName = env.getProperty(ParameterQueue.RPC_REPLY_QUEUE);
 		exchange = multi + uid;
 		serializerType = env.getProperty(ParameterQueue.PROXY_SERIALIZER, Serializer.JAVA);
@@ -53,5 +52,5 @@
 
 		// Add the correlation ID and create a replyTo property
-		BasicProperties props = new BasicProperties.Builder().appId(uid).correlationId(corrId).replyTo(replyQueueName).type(serializerType).build();
+		BasicProperties props = new BasicProperties.Builder().appId(uid).correlationId(corrId).type(serializerType).build();
 
 		byte[] bytesRequest = serializer.serialize(serializerType, request);
Index: /trunk/src/test/java/omq/test/event/MessageTest.java
===================================================================
--- /trunk/src/test/java/omq/test/event/MessageTest.java	(revision 77)
+++ /trunk/src/test/java/omq/test/event/MessageTest.java	(revision 78)
@@ -20,5 +20,5 @@
 @RunWith(value = Parameterized.class)
 public class MessageTest {
-	private static final String NAME = "message";
+	private static final String NAME = "message_event_test";
 
 	private static Broker broker;
Index: /trunk/src/test/java/omq/test/persistence/Message.java
===================================================================
--- /trunk/src/test/java/omq/test/persistence/Message.java	(revision 78)
+++ /trunk/src/test/java/omq/test/persistence/Message.java	(revision 78)
@@ -0,0 +1,13 @@
+package omq.test.persistence;
+
+import omq.Remote;
+import omq.client.annotation.AsyncMethod;
+import omq.client.annotation.SyncMethod;
+
+public interface Message extends Remote {
+	@AsyncMethod
+	public void setMessage(String message);
+
+	@SyncMethod(timeout = 1500)
+	public String getMessage();
+}
Index: /trunk/src/test/java/omq/test/persistence/MessageImpl.java
===================================================================
--- /trunk/src/test/java/omq/test/persistence/MessageImpl.java	(revision 78)
+++ /trunk/src/test/java/omq/test/persistence/MessageImpl.java	(revision 78)
@@ -0,0 +1,19 @@
+package omq.test.persistence;
+
+import omq.server.RemoteObject;
+
+public class MessageImpl extends RemoteObject implements Message {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	private String message;
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+}
Index: /trunk/src/test/java/omq/test/persistence/PersistentTest.java
===================================================================
--- /trunk/src/test/java/omq/test/persistence/PersistentTest.java	(revision 78)
+++ /trunk/src/test/java/omq/test/persistence/PersistentTest.java	(revision 78)
@@ -0,0 +1,107 @@
+package omq.test.persistence;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Properties;
+
+import omq.common.broker.Broker;
+import omq.common.util.ParameterQueue;
+import omq.common.util.Serializer;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(value = Parameterized.class)
+public class PersistentTest {
+	private static String MESSAGE = "message";
+	private String type;
+	private Properties clientProps;
+	private Properties serverProps;
+	private Properties msgImplProps;
+
+	public PersistentTest(String type) {
+		this.type = type;
+
+		/*
+		 * Server Properties
+		 */
+		serverProps = new Properties();
+		serverProps.setProperty(ParameterQueue.USER_NAME, "guest");
+		serverProps.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Set host info of rabbtimq (where it is)
+		serverProps.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
+		serverProps.setProperty(ParameterQueue.RABBIT_PORT, "5672");
+
+		/*
+		 * MessageImpl Properties
+		 */
+		msgImplProps = new Properties();
+		msgImplProps.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		msgImplProps.setProperty(ParameterQueue.DURABLE_QUEUES, "true");
+		msgImplProps.setProperty(ParameterQueue.EXCLUSIVE_QUEUE, "false");
+		msgImplProps.setProperty(ParameterQueue.AUTO_DELETE_QUEUE, "false");
+		msgImplProps.setProperty(ParameterQueue.MULTI_QUEUE_NAME, "multiMessageQueue");
+
+		/*
+		 * Client Properties
+		 */
+
+		clientProps = new Properties();
+		clientProps.setProperty(ParameterQueue.USER_NAME, "guest");
+		clientProps.setProperty(ParameterQueue.USER_PASS, "guest");
+
+		// Set host info of rabbimq (where it is)
+		clientProps.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
+		clientProps.setProperty(ParameterQueue.RABBIT_PORT, "5672");
+		clientProps.setProperty(ParameterQueue.DURABLE_QUEUES, "true");
+		clientProps.setProperty(ParameterQueue.PROXY_SERIALIZER, type);
+		clientProps.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
+		clientProps.setProperty(ParameterQueue.RPC_REPLY_QUEUE, "persistent_message_reply_queue");
+		clientProps.setProperty(ParameterQueue.DELIVERY_MODE, "2");
+		// TODO msgProps -> rpc_exchange, serializer type and delivery mode
+	}
+
+	@Parameters
+	public static Collection<Object[]> data() {
+		Object[][] data = new Object[][] { { Serializer.JAVA }, { Serializer.GSON }, { Serializer.KRYO } };
+		return Arrays.asList(data);
+	}
+
+	@Test
+	public void test() throws Exception {
+		System.out.println("Type = " + type);
+		String expected = "message";
+		String actual = null;
+
+		// Ensure the queues exist
+		Broker serverBroker = new Broker(serverProps);
+		MessageImpl msgImpl = new MessageImpl();
+		serverBroker.bind(MESSAGE, msgImpl, msgImplProps);
+
+		Broker clientBroker = new Broker(clientProps);
+		Message iMsg = clientBroker.lookup(MESSAGE, Message.class);
+		iMsg.setMessage(expected);
+
+		// Restart the rabbitmq
+		String password = "unpc";
+		String[] command = { "/bin/bash", "-c", "echo " + password + " | sudo -S service rabbitmq-server restart" };
+
+		Runtime runtime = Runtime.getRuntime();
+		runtime.exec(command);
+
+		Thread.sleep(15000);
+
+		actual = iMsg.getMessage();
+
+		// Stop both brokers
+		serverBroker.stopBroker();
+		clientBroker.stopBroker();
+
+		assertEquals(expected, actual);
+	}
+}
