diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java
index e4bb8f0..6915b2f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/AMQPSession.java
@@ -47,7 +47,6 @@
   public void connect() {
     LOGGER.info("Connect to " + properties.getAMQPUri() + "...");
     ConnectionFactory factory = new ConnectionFactory();
-    exchangeName = UUID.randomUUID().toString();
     try {
       if (StringUtils.isNotEmpty(properties.getAMQPUri())) {
         factory.setUri(properties.getAMQPUri());
@@ -83,6 +82,7 @@
             exchangeType = EXCHANGE_TYPE_FANOUT;
             routingKey = pluginName;
           }
+          exchangeName = UUID.randomUUID().toString();
           LOGGER.debug("Exchange type: " + exchangeType);
           LOGGER.debug("Declare exchange: " + exchangeName);
           ch.exchangeDeclare(exchangeName, exchangeType, true);
@@ -92,7 +92,7 @@
           ch.queueBind(properties.getAMQPQueue(), exchangeName, routingKey);
           publishChannel = ch;
           LOGGER.info("Channel for queue \"" + properties.getAMQPQueue() + "\" opened.");
-        } else if (StringUtils.isNotEmpty(exchangeName)) {
+        } else if (StringUtils.isNotEmpty(properties.getAMQPExchange())) {
           LOGGER.info("Exchange mode");
           exchangeName = properties.getAMQPExchange();
           LOGGER.debug("Declare exchange: " + exchangeName);
