Tag new release candidate.
diff --git a/src/main/csharp/MessageConsumer.cs b/src/main/csharp/MessageConsumer.cs
index 1a36936..9fb1684 100755
--- a/src/main/csharp/MessageConsumer.cs
+++ b/src/main/csharp/MessageConsumer.cs
@@ -72,7 +72,7 @@
 			this.info = info;
 			this.redeliveryPolicy = this.session.Connection.RedeliveryPolicy;
 		}
-        
+
 		~MessageConsumer()
 		{
 			Dispose(false);
@@ -506,7 +506,10 @@
                                 // If aborted we stop the abort here and let normal processing resume.
                                 // This allows the session to shutdown normally and ack all messages
                                 // that have outstanding acks in this consumer.
-                                Thread.ResetAbort();
+                                if( (Thread.CurrentThread.ThreadState & ThreadState.AbortRequested) == ThreadState.AbortRequested)
+                                {
+                                    Thread.ResetAbort();
+                                }
 							}
 						}
 						else
diff --git a/src/main/csharp/Threads/CompositeTaskRunner.cs b/src/main/csharp/Threads/CompositeTaskRunner.cs
index 8e20512..5bae383 100755
--- a/src/main/csharp/Threads/CompositeTaskRunner.cs
+++ b/src/main/csharp/Threads/CompositeTaskRunner.cs
@@ -155,10 +155,13 @@
                     }
                 }
             }
-            catch
+            catch(ThreadAbortException)
             {
                 Thread.ResetAbort();
             }
+            catch
+            {
+            }
             finally
             {        
                 // Make sure we notify any waiting threads that thread
diff --git a/src/main/csharp/Threads/DedicatedTaskRunner.cs b/src/main/csharp/Threads/DedicatedTaskRunner.cs
index 77edbea..4b2902d 100644
--- a/src/main/csharp/Threads/DedicatedTaskRunner.cs
+++ b/src/main/csharp/Threads/DedicatedTaskRunner.cs
@@ -142,11 +142,14 @@
                     }
                 }
             }
-            catch
+            catch( ThreadAbortException )
             {
                 // Prevent the ThreadAbortedException for propogating.
                 Thread.ResetAbort();
             }
+            catch
+            {
+            }
             finally
             {        
                 // Make sure we notify any waiting threads that thread