Index: C:/workspace/sandesha_1_0/src/org/apache/sandesha/SandeshaContext.java
===================================================================
--- C:/workspace/sandesha_1_0/src/org/apache/sandesha/SandeshaContext.java	(revision 451449)
+++ C:/workspace/sandesha_1_0/src/org/apache/sandesha/SandeshaContext.java	(working copy)
@@ -76,6 +76,7 @@
     private boolean sendOffer;
     private long messageNumber;
     private boolean sync;
+    private int endSeqIncompleteBehavior;
 
     static int clientListnerPort = -1;
     public final int MIN_PORT = 0;
@@ -155,6 +156,14 @@
         this.toURL = toURL;
     }
 
+    public int getEndSeqBehavior() {
+        return endSeqIncompleteBehavior;
+    }
+
+    public void setEndSeqBehavior(int flag) {
+        this.endSeqIncompleteBehavior = flag;
+    }
+
     public SandeshaContext() throws AxisFault {
         initSandeshaAsync();
     }
@@ -340,18 +349,35 @@
             String key = (String) ite.next();
             Call tempCall = (Call) callMap.get(key);
             String seqId = (String) tempCall.getProperty(Constants.ClientProperties.CALL_KEY);
-            while (!storageManager.isSequenceComplete(seqId)) {
-                try {
-                    if (log.isDebugEnabled()) {
-                        log.debug(Constants.InfomationMessage.WAITING_TO_STOP_CLIENT);
+            while (!storageManager.isSequenceComplete(seqId))
+            {
+                // figure what to do about "incomplete" sequence
+                if (endSeqIncompleteBehavior != Constants.END_SEQ_IGNORE_INCOMPLETE)
+                {
+                    // wait a bit
+                    try {
+                        if (log.isDebugEnabled()) {
+                            log.debug(Constants.InfomationMessage.WAITING_TO_STOP_CLIENT);
+                        }
+                        Thread.sleep(Constants.CLIENT_WAIT_PERIOD_FOR_COMPLETE);
+                        if ((System.currentTimeMillis() - startingTime) >= inactivityTimeOut) {
+                            stopClientByForce();
+                            this.report.setError("Inactivity Time Out Reached. Sequence not complete");
+                        }
+                    } catch (InterruptedException e) {
+                        log.error("",e);
                     }
-                    Thread.sleep(Constants.CLIENT_WAIT_PERIOD_FOR_COMPLETE);
-                    if ((System.currentTimeMillis() - startingTime) >= inactivityTimeOut) {
-                        stopClientByForce();
-                        this.report.setError("Inactivity Time Out Reached. Sequence not complete");
+                }
+                else
+                {
+                    if (log.isInfoEnabled())
+                    {
+                    	String msg = Constants.InfomationMessage.IGNORING_INCOMPLETE_SEQUENCE + seqId;
+                        log.info(msg);
                     }
-                } catch (InterruptedException e) {
-                    log.error("",e);
+                    
+                    // break out to the next sequence
+                    break;
                 }
             }
         }
