Index: src/main/java/org/apache/synapse/mediators/transform/FaultMediator.java
===================================================================
--- src/main/java/org/apache/synapse/mediators/transform/FaultMediator.java	(revision 754500)
+++ src/main/java/org/apache/synapse/mediators/transform/FaultMediator.java	(working copy)
@@ -31,11 +31,14 @@
 import org.apache.synapse.SynapseLog;
 import org.apache.synapse.core.axis2.Axis2MessageContext;
 import org.apache.synapse.mediators.AbstractMediator;
+import org.apache.synapse.transport.nhttp.NhttpConstants;
 import org.apache.synapse.util.xpath.SynapseXPath;
 
 import javax.xml.namespace.QName;
+
 import java.net.URI;
 import java.util.Iterator;
+import java.util.Map;
 
 /**
  * This transforms the current message instance into a SOAP Fault message. The
@@ -141,10 +144,40 @@
             synCtx.setResponse(true);
             synCtx.setTo(synCtx.getReplyTo());
         }
+       
+        Axis2MessageContext msgCtx = (Axis2MessageContext) synCtx;
+        if (isHessianMessage(msgCtx)) {
+            msgCtx.getAxis2MessageContext().setProperty(NhttpConstants.HTTP_SC, "200");
+            if (log.isDebugEnabled()) {
+                log.debug("Setting HTTP status code to 200 for Hessian fault message");
+            }
+        }
         
         return true;
     }
 
+    /**
+     * Detects based on the Content-Type whether the message is a Hessian message.
+     * 
+     * @param msgCtx the Axis2MessageContext containing the message
+     */
+    private boolean isHessianMessage(Axis2MessageContext msgCtx) {
+
+        Object headers = msgCtx.getAxis2MessageContext().getProperty(
+                org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
+        
+        if (headers != null && headers instanceof Map) {
+            Map<String, String> headersMap = (Map) headers;
+            String contentType = headersMap.get("Content-Type");
+            
+            // if the message is a hessian message
+            if ("x-application/hessian".equals(contentType)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     private void makePOXFault(MessageContext synCtx, SynapseLog synLog) {
 
         OMFactory fac = synCtx.getEnvelope().getOMFactory();
