Minor update for C-support. 
diff --git a/src/cbindings/client/CallC.cpp b/src/cbindings/client/CallC.cpp
index 3a745c9..bc29844 100644
--- a/src/cbindings/client/CallC.cpp
+++ b/src/cbindings/client/CallC.cpp
@@ -46,14 +46,20 @@
     
     StubC *s = (StubC *)c->getCStub();
     if (s)
-    {
         if ((stubExceptionHandler = s->getCExceptionHandler()) != NULL)
             exceptionHandler = stubExceptionHandler;
 
-        s->doNotPerformClientRequest = true;
+    try
+    {
+        c->processSoapFault(&e, exceptionHandler);
     }
-    
-    c->processSoapFault(&e, exceptionHandler);
+    catch ( AxisException& e  )
+    {
+        // already processing exception...ignore
+    }
+
+    if (s)
+        s->doNotPerformClientRequest = true;
 }
 
 
diff --git a/src/engine/client/Call.cpp b/src/engine/client/Call.cpp
index 25b6cf8..f1f4339 100644
--- a/src/engine/client/Call.cpp
+++ b/src/engine/client/Call.cpp
@@ -1278,11 +1278,19 @@
         
         if (faultIsDefined)
         {
-            pFaultDetail = pSoapFault->getCmplxFaultObject(fi->m_deserializerFp, 
-                                                           fi->m_createFp,
-                                                           fi->m_deleteFp, 
-                                                           fi->m_faultName, 
-                                                           0);
+            try
+            {
+               pFaultDetail = pSoapFault->getCmplxFaultObject(fi->m_deserializerFp,
+                                                              fi->m_createFp,
+                                                              fi->m_deleteFp,
+                                                              fi->m_faultName,
+                                                              0);
+            }
+            catch (AxisException& e1)
+            {
+                // Just fall through since we are already dealing with some exception.
+                pFaultDetail = NULL;
+            }
         }
         else
         {