diff --git a/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformer.java b/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformer.java
index 5b220994f..392fcf9c5 100644
--- a/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformer.java
+++ b/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformer.java
@@ -93,6 +93,8 @@ import org.fusesource.hawtbuf.UTF8Buffer;
 public class JMSMappingOutboundTransformer implements OutboundTransformer {
 
     public static final Symbol JMS_DEST_TYPE_MSG_ANNOTATION = Symbol.valueOf("x-opt-jms-dest");
+    public static final Symbol JMS_ORIGINAL_DEST_MSG_ANNOTATION = Symbol.valueOf("x-opt-jms-original-dest");
+
     public static final Symbol JMS_REPLY_TO_TYPE_MSG_ANNOTATION = Symbol.valueOf("x-opt-jms-reply-to");
 
     private static final String AMQ_SCHEDULED_MESSAGE_PREFIX = "AMQ_SCHEDULED_";
@@ -163,6 +165,13 @@ public class JMSMappingOutboundTransformer implements OutboundTransformer {
             }
             maMap.put(JMS_DEST_TYPE_MSG_ANNOTATION, destinationType(destination));
         }
+        ActiveMQDestination originalDestination = message.getOriginalDestination();
+        if (originalDestination != null) {
+            if (maMap == null) {
+                maMap = new HashMap<Symbol, Object>();
+            }
+            maMap.put(JMS_ORIGINAL_DEST_MSG_ANNOTATION, originalDestination.getQualifiedName());
+        }
         ActiveMQDestination replyTo = message.getReplyTo();
         if (replyTo != null) {
             if (properties == null) {
diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformerTest.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformerTest.java
index e9da2613e..03101a81e 100644
--- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformerTest.java
+++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformerTest.java
@@ -23,6 +23,7 @@ import static org.apache.activemq.transport.amqp.message.AmqpMessageSupport.AMQP
 import static org.apache.activemq.transport.amqp.message.AmqpMessageSupport.AMQP_VALUE_BINARY;
 import static org.apache.activemq.transport.amqp.message.AmqpMessageSupport.JMS_AMQP_ORIGINAL_ENCODING;
 import static org.apache.activemq.transport.amqp.message.JMSMappingOutboundTransformer.JMS_DEST_TYPE_MSG_ANNOTATION;
+import static org.apache.activemq.transport.amqp.message.JMSMappingOutboundTransformer.JMS_ORIGINAL_DEST_MSG_ANNOTATION;
 import static org.apache.activemq.transport.amqp.message.JMSMappingOutboundTransformer.JMS_REPLY_TO_TYPE_MSG_ANNOTATION;
 import static org.apache.activemq.transport.amqp.message.JMSMappingOutboundTransformer.QUEUE_TYPE;
 import static org.apache.activemq.transport.amqp.message.JMSMappingOutboundTransformer.TEMP_QUEUE_TYPE;
@@ -825,6 +826,29 @@ public class JMSMappingOutboundTransformerTest {
         }
     }
 
+    @Test
+    public void testOriginalDestinationMapped() throws Exception {
+        final ActiveMQQueue origDest = new ActiveMQQueue("OrigDest");
+        ActiveMQTextMessage mockTextMessage = createMockTextMessage();
+        Mockito.when(mockTextMessage.getText()).thenReturn("myTextMessageContent");
+        Mockito.when(mockTextMessage.getOriginalDestination()).thenReturn(origDest);
+
+        JMSMappingOutboundTransformer transformer = new JMSMappingOutboundTransformer();
+
+        EncodedMessage encoded = transformer.transform(mockTextMessage);
+        assertNotNull(encoded);
+
+        Message amqp = encoded.decode();
+
+        MessageAnnotations ma = amqp.getMessageAnnotations();
+        Map<Symbol, Object> maMap = ma == null ? null : ma.getValue();
+        if (maMap != null) {
+            Object actualValue = maMap.get(JMS_ORIGINAL_DEST_MSG_ANNOTATION);
+            assertEquals("Unexpected annotation value", origDest.getQualifiedName(), actualValue);
+        } else {
+            fail("Expected annotation value, but there were no annotations");
+        }
+    }
     //----- Test JMSReplyTo Handling -----------------------------------------//
 
     @Test
