fix for: https://issues.apache.org/jira/browse/AMQCPP-510

patches the problem on 3.8.x branch
diff --git a/activemq-cpp/src/main/activemq/core/ConnectionAudit.cpp b/activemq-cpp/src/main/activemq/core/ConnectionAudit.cpp
index d3be4ee..b8e3c5e 100644
--- a/activemq-cpp/src/main/activemq/core/ConnectionAudit.cpp
+++ b/activemq-cpp/src/main/activemq/core/ConnectionAudit.cpp
@@ -18,6 +18,7 @@
 #include "ConnectionAudit.h"
 
 #include <decaf/util/LinkedHashMap.h>
+#include <decaf/util/StlMap.h>
 
 #include <activemq/core/Dispatcher.h>
 #include <activemq/core/ActiveMQMessageAudit.h>
@@ -48,10 +49,11 @@
     public:
 
         Mutex mutex;
-        LinkedHashMap<Pointer<ActiveMQDestination>, Pointer<ActiveMQMessageAudit> > destinations;
+
+        StlMap<Pointer<ActiveMQDestination>, Pointer<ActiveMQMessageAudit>, ActiveMQDestination::COMPARATOR> destinations;
         LinkedHashMap<Dispatcher*, Pointer<ActiveMQMessageAudit> > dispatchers;
 
-        ConnectionAuditImpl() : mutex(), destinations(1000), dispatchers(1000) {
+        ConnectionAuditImpl() : mutex(), destinations(), dispatchers(1000) {
         }
     };
 }}
diff --git a/activemq-cpp/src/test/activemq/core/ConnectionAuditTest.cpp b/activemq-cpp/src/test/activemq/core/ConnectionAuditTest.cpp
index 2ba97a1..4e39df3 100644
--- a/activemq-cpp/src/test/activemq/core/ConnectionAuditTest.cpp
+++ b/activemq-cpp/src/test/activemq/core/ConnectionAuditTest.cpp
@@ -94,11 +94,12 @@
     pid->setSessionId(0);
     pid->setValue(1);
 
-    Pointer<ActiveMQDestination> destination(new ActiveMQQueue("TEST.QUEUE"));
     Pointer<Message> message(new Message());
-    message->setDestination(destination);
 
     for (int i = 0; i < count; i++) {
+        Pointer<ActiveMQDestination> destination(new ActiveMQQueue("TEST.QUEUE"));
+        message->setDestination(destination);
+
         Pointer<MessageId> id(new MessageId);
         id->setProducerId(pid);
         id->setProducerSequenceId(i);