Index: trunk/src/main/java/omq/client/listener/ResponseListener.java
===================================================================
--- trunk/src/main/java/omq/client/listener/ResponseListener.java	(revision 83)
+++ trunk/src/main/java/omq/client/listener/ResponseListener.java	(revision 84)
@@ -120,5 +120,7 @@
 
 		String reply_queue = env.getProperty(ParameterQueue.RPC_REPLY_QUEUE);
-		boolean durable = Boolean.parseBoolean(env.getProperty(ParameterQueue.DURABLE_QUEUES, "false"));
+		boolean durable = Boolean.parseBoolean(env.getProperty(ParameterQueue.DURABLE_QUEUE, "false"));
+		boolean exclusive = Boolean.parseBoolean(env.getProperty(ParameterQueue.EXCLUSIVE_QUEUE, "true"));
+		boolean autoDelete = Boolean.parseBoolean(env.getProperty(ParameterQueue.AUTO_DELETE_QUEUE, "true"));
 
 		int ttl = Integer.parseInt(env.getProperty(ParameterQueue.MESSAGE_TTL_IN_QUEUES, "-1"));
@@ -128,6 +130,12 @@
 		}
 
-		channel.queueDeclare(reply_queue, durable, false, false, args);
-		logger.info("ResponseListener creating queue: " + reply_queue + ", durable: " + durable + "TTL: " + (ttl > 0 ? ttl : "not set"));
+		if (reply_queue == null) {
+			reply_queue = channel.queueDeclare().getQueue();
+			env.setProperty(ParameterQueue.RPC_REPLY_QUEUE, reply_queue);
+		} else {
+			channel.queueDeclare(reply_queue, durable, exclusive, autoDelete, args);
+		}
+		logger.info("ResponseListener creating queue: " + reply_queue + ", durable: " + durable + ", exclusive: " + exclusive + ", autoDelete: " + autoDelete
+				+ ", TTL: " + (ttl > 0 ? ttl : "not set"));
 
 		// Declare a new consumer
Index: trunk/src/main/java/omq/client/proxy/Proxymq.java
===================================================================
--- trunk/src/main/java/omq/client/proxy/Proxymq.java	(revision 83)
+++ trunk/src/main/java/omq/client/proxy/Proxymq.java	(revision 84)
@@ -92,5 +92,5 @@
 		// this.channel = Broker.getChannel();
 		env = broker.getEnvironment();
-		exchange = env.getProperty(ParameterQueue.RPC_EXCHANGE);
+		exchange = env.getProperty(ParameterQueue.RPC_EXCHANGE, "");
 		multiExchange = multi + uid;
 		replyQueueName = env.getProperty(ParameterQueue.RPC_REPLY_QUEUE);
