diff --git a/systests/pom.xml b/systests/pom.xml
index 85325b6..de02637 100644
--- a/systests/pom.xml
+++ b/systests/pom.xml
@@ -165,7 +165,7 @@
             <properties>
                 <qpid.amqp.version>0-10</qpid.amqp.version>
                 <surefire.working.directory>${project.build.directory}${file.separator}surefire-reports${file.separator}${qpid.amqp.version}</surefire.working.directory>
-                <qpid-broker-j-version>7.0.3</qpid-broker-j-version>
+                <qpid-broker-j-version>7.1.2</qpid-broker-j-version>
                 <qpid.systest.broker_admin>org.apache.qpid.systest.core.brokerj.SpawnQpidBrokerAdmin</qpid.systest.broker_admin>
                 <qpid.systest.java8.executable>java</qpid.systest.java8.executable>
                 <qpid.systest.virtualhost.blueprint>{"type":"BDB","globalAddressDomains":"[]"}</qpid.systest.virtualhost.blueprint>
diff --git a/systests/src/test/java/org/apache/qpid/systest/destination/AddressBasedDestinationTest.java b/systests/src/test/java/org/apache/qpid/systest/destination/AddressBasedDestinationTest.java
index 1665283..20323e3 100644
--- a/systests/src/test/java/org/apache/qpid/systest/destination/AddressBasedDestinationTest.java
+++ b/systests/src/test/java/org/apache/qpid/systest/destination/AddressBasedDestinationTest.java
@@ -455,10 +455,9 @@
 
         AMQDestination dest = new AMQAnyDestination(addr);
 
-        MessageConsumer cons;
         try
         {
-            cons = jmsSession.createConsumer(dest);
+            jmsSession.createConsumer(dest);
             if (useNonsenseArguments || useNonsenseExchangeType)
             {
                 fail("Expected execution exception during exchange declare did not occur");
@@ -474,6 +473,11 @@
                 //for. We can't do the rest of the test as a result of the exception, just stop.
                 return;
             }
+            else if (useNonsenseArguments && ( e.getMessage().contains(String.valueOf(ExecutionErrorCode.ILLEGAL_ARGUMENT.getValue())))
+                     || e.getMessage().contains(String.valueOf(ExecutionErrorCode.INVALID_ARGUMENT.getValue())))
+            {
+                return;
+            }
             else if (useNonsenseExchangeType && (e.getErrorCode().equals(String.valueOf(404))))
             {
                 return;
@@ -499,7 +503,7 @@
 
         // The client should be able to query and verify the existence of my-exchange (QPID-2774)
         dest = new AMQAnyDestination("ADDR:my-exchange; {create: never}");
-        cons = jmsSession.createConsumer(dest);
+        jmsSession.createConsumer(dest).close();
     }
 
     private String createExchangeArgsString(final boolean withExchangeArgs,
