Index: modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSConstants.java
===================================================================
--- modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSConstants.java	(revision 711536)
+++ modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSConstants.java	(working copy)
@@ -143,4 +143,8 @@
      * A MessageContext property or client Option stating the JMS type
      */
     public static final String JMS_TYPE = "JMS_TYPE";
+    /**
+     * A JMS header field names need to confirm to java variable naming specs. "Content-Type" is illigel
+     */
+    public static final String JMS_CONTENT_TYPE = "ContentType";
 }
Index: modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java
===================================================================
--- modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java	(revision 711536)
+++ modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java	(working copy)
@@ -61,7 +61,7 @@
      * @param jmsConFac the JMS connection factory we are associated with
      * @param workerPool the worker thread pool to be used
      * @param cfgCtx the axis ConfigurationContext
-     * @param serviceName the name of the Axis service
+     * @param endpoint the axis Endpoint
      */
     JMSMessageReceiver(JMSListener jmsListener, JMSConnectionFactory jmsConFac,
                        WorkerPool workerPool, ConfigurationContext cfgCtx, JMSEndpoint endpoint) {
@@ -201,8 +201,14 @@
 
                 String contentType = endpoint.getContentType();
                 if (contentType == null) {
-                    contentType
-                        = JMSUtils.getProperty(message, BaseConstants.CONTENT_TYPE);
+                    try{
+                        contentType = JMSUtils.getProperty(message, BaseConstants.CONTENT_TYPE);
+                         if(contentType == null)
+                                contentType = JMSUtils.getProperty(message, JMSConstants.JMS_CONTENT_TYPE);
+                    }
+                    catch(Exception ex){
+                         contentType = JMSUtils.getProperty(message, JMSConstants.JMS_CONTENT_TYPE);
+                    }
                 }
                 
                 JMSUtils.setSOAPEnvelope(message, msgContext, contentType);
Index: modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java
===================================================================
--- modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java	(revision 711536)
+++ modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java	(working copy)
@@ -392,19 +392,21 @@
         // for JMS but just get the payload in its native format
         String jmsPayloadType = guessMessageType(msgContext);
 
-        if (jmsPayloadType == null) {
 
-            OMOutputFormat format = BaseUtils.getOMOutputFormat(msgContext);
-            MessageFormatter messageFormatter = null;
-            try {
-                messageFormatter = TransportUtils.getMessageFormatter(msgContext);
-            } catch (AxisFault axisFault) {
-                throw new JMSException("Unable to get the message formatter to use");
-            }
 
-            String contentType = messageFormatter.getContentType(
+        OMOutputFormat format = BaseUtils.getOMOutputFormat(msgContext);
+        MessageFormatter messageFormatter = null;
+        try {
+            messageFormatter = TransportUtils.getMessageFormatter(msgContext);
+        } catch (AxisFault axisFault) {
+            throw new JMSException("Unable to get the message formatter to use");
+        }
+
+        String contentType = messageFormatter.getContentType(
                 msgContext, format, msgContext.getSoapAction());
 
+
+        if (jmsPayloadType == null) {
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             try {
                 messageFormatter.writeTo(msgContext, format, baos, true);
@@ -414,7 +416,7 @@
             }
 
             if (msgType != null && JMSConstants.JMS_BYTE_MESSAGE.equals(msgType) ||
-                contentType.indexOf(HTTPConstants.HEADER_ACCEPT_MULTIPART_RELATED) > -1) {
+                    contentType.indexOf(HTTPConstants.HEADER_ACCEPT_MULTIPART_RELATED) > -1) {
                 message = session.createBytesMessage();
                 BytesMessage bytesMsg = (BytesMessage) message;
                 bytesMsg.writeBytes(baos.toByteArray());
@@ -427,13 +429,12 @@
                     handleException("Unsupported encoding " + format.getCharSetEncoding(), ex);
                 }
             }
-            message.setStringProperty(BaseConstants.CONTENT_TYPE, contentType);
 
         } else if (JMSConstants.JMS_BYTE_MESSAGE.equals(jmsPayloadType)) {
             message = session.createBytesMessage();
             BytesMessage bytesMsg = (BytesMessage) message;
             OMElement wrapper = msgContext.getEnvelope().getBody().
-                getFirstChildWithName(BaseConstants.DEFAULT_BINARY_WRAPPER);
+                    getFirstChildWithName(BaseConstants.DEFAULT_BINARY_WRAPPER);
             OMNode omNode = wrapper.getFirstOMChild();
             if (omNode != null && omNode instanceof OMText) {
                 Object dh = ((OMText) omNode).getDataHandler();
@@ -443,7 +444,7 @@
                         ((DataHandler) dh).writeTo(baos);
                     } catch (IOException e) {
                         handleException("Error serializing binary content of element : " +
-                            BaseConstants.DEFAULT_BINARY_WRAPPER, e);
+                                BaseConstants.DEFAULT_BINARY_WRAPPER, e);
                     }
                     bytesMsg.writeBytes(baos.toByteArray());
                 }
@@ -453,9 +454,16 @@
             message = session.createTextMessage();
             TextMessage txtMsg = (TextMessage) message;
             txtMsg.setText(msgContext.getEnvelope().getBody().
-                getFirstChildWithName(BaseConstants.DEFAULT_TEXT_WRAPPER).getText());
+                    getFirstChildWithName(BaseConstants.DEFAULT_TEXT_WRAPPER).getText());
         }
 
+        try{
+            message.setStringProperty(BaseConstants.CONTENT_TYPE, contentType);
+        }
+        catch(Exception ex){
+            message.setStringProperty(JMSConstants.JMS_CONTENT_TYPE, contentType);
+        }
+
         // set the JMS correlation ID if specified
         String correlationId = getProperty(msgContext, JMSConstants.JMS_COORELATION_ID);
         if (correlationId == null && msgContext.getRelatesTo() != null) {
Index: modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
===================================================================
--- modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java	(revision 711536)
+++ modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java	(working copy)
@@ -515,6 +515,7 @@
             } else if (JMSConstants.JMS_MESSAGE_TYPE.equals(name)) {
                 message.setJMSType((String) headerMap.get(JMSConstants.JMS_MESSAGE_TYPE));
             } else {
+               try{
                 Object value = headerMap.get(name);
                 if (value instanceof String) {
                     message.setStringProperty(name, (String) value);
@@ -529,6 +530,8 @@
                 } else if (value instanceof Float) {
                     message.setFloatProperty(name, (Float) value);
                 }
+               }
+               catch(Exception ignore){}
             }
         }
     }

