diff --git a/appender/jms/src/main/java/org/apache/karaf/decanter/appender/jms/JmsAppender.java b/appender/jms/src/main/java/org/apache/karaf/decanter/appender/jms/JmsAppender.java
index 021c491..38d9bb4 100644
--- a/appender/jms/src/main/java/org/apache/karaf/decanter/appender/jms/JmsAppender.java
+++ b/appender/jms/src/main/java/org/apache/karaf/decanter/appender/jms/JmsAppender.java
@@ -17,6 +17,7 @@
 package org.apache.karaf.decanter.appender.jms;
 
 import java.util.Dictionary;
+import java.util.Map;
 
 import javax.jms.*;
 
@@ -94,18 +95,22 @@
         if (value == null) {
             return;
         }
-        if (value instanceof String)
+        if (value instanceof String) {
             message.setString(name, (String) value);
-        else if (value instanceof Boolean)
+        } else if (value instanceof Boolean) {
             message.setBoolean(name, (Boolean) value);
-        else if (value instanceof Double)
+        } else if (value instanceof Double) {
             message.setDouble(name, (Double) value);
-        else if (value instanceof Integer)
+        } else if (value instanceof Integer) {
             message.setInt(name, (Integer) value);
-        else if (value instanceof Long)
+        } else if (value instanceof Long) {
             message.setLong(name, (Long) value);
-        else message.setString(name, value.toString());
-        // we can setObject with List, Map, but they have to contain only primitives
+        } else if (value instanceof Map) {
+            // Must only contain primitives
+            message.setObject(name, value);
+        } else {
+            message.setString(name, value.toString());
+        }
     }
 
     private Destination createDestination(Session session) throws JMSException {
diff --git a/appender/jms/src/test/java/org/apache/karaf/decanter/appender/jms/JmsAppenderTest.java b/appender/jms/src/test/java/org/apache/karaf/decanter/appender/jms/JmsAppenderTest.java
index dfb3a64..d1a1c9e 100644
--- a/appender/jms/src/test/java/org/apache/karaf/decanter/appender/jms/JmsAppenderTest.java
+++ b/appender/jms/src/test/java/org/apache/karaf/decanter/appender/jms/JmsAppenderTest.java
@@ -56,6 +56,7 @@
         props.put("boolean", true);
         props.put("integer", 1);
         props.put("testnull", null);
+        props.put("map", new HashMap<String, String>());
         appender.handleEvent(new Event("decanter/collect", props));
         
         MapMessage message = (MapMessage)consumer.receive(1000);
@@ -67,5 +68,7 @@
         Assert.assertEquals("test", message.getObject("string"));
         Assert.assertEquals(true, message.getObject("boolean"));
         Assert.assertEquals(1, message.getObject("integer"));
+        Object map = message.getObject("map");
+        Assert.assertTrue(map instanceof Map);
     }
 }
