diff --git a/src/main/csharp/NetTxTransactionContext.cs b/src/main/csharp/NetTxTransactionContext.cs
index 1d0c6ca..214f32f 100644
--- a/src/main/csharp/NetTxTransactionContext.cs
+++ b/src/main/csharp/NetTxTransactionContext.cs
@@ -32,11 +32,22 @@
         private const int XA_READONLY = 3;
 
         private Enlistment currentEnlistment;
+        private static readonly Dictionary<string, bool> recoveredResourceManagerIds = new Dictionary<string, bool>();
 
         public NetTxTransactionContext(Session session) : base(session)
         {
         }
 
+        /// <summary>
+        /// DTC recovery is performed once for each AppDomain per default. In case you want to perform
+        /// it again during execution of the application you can call this method before.
+        /// But ensure in this case that no connection is active anymore.
+        /// </summary>
+        public static void ResetDtcRecovery()
+        {
+            recoveredResourceManagerIds.Clear();
+        }
+
         public override bool InLocalTransaction
         {
             get { return this.transactionId != null && this.currentEnlistment == null; }
@@ -500,62 +511,74 @@
         /// </summary>
         public void InitializeDtcTxContext()
         {
+            string resourceManagerId = ResourceManagerId;
+
             // initialize the logger with the current Resource Manager Id
-            RecoveryLogger.Initialize(ResourceManagerId);
+            RecoveryLogger.Initialize(resourceManagerId);
 
-            KeyValuePair<XATransactionId, byte[]>[] localRecoverables = RecoveryLogger.GetRecoverables();
-            if (localRecoverables.Length == 0)
+            lock (recoveredResourceManagerIds)
             {
-                Tracer.Debug("Did not detect any open DTC transaction records on disk.");
-                // No local data so anything stored on the broker can't be recovered here.
-                return;
-            }
-
-            XATransactionId[] recoverables = TryRecoverBrokerTXIds();
-            if (recoverables.Length == 0)
-            {
-                Tracer.Debug("Did not detect any recoverable transactions at Broker.");
-                // Broker has no recoverable data so nothing to do here, delete the
-                // old recovery log as its stale.
-                RecoveryLogger.Purge();
-                return;
-            }
-
-            List<KeyValuePair<XATransactionId, byte[]>> matches = new List<KeyValuePair<XATransactionId, byte[]>>();
-
-            foreach (XATransactionId recoverable in recoverables)
-            {
-                foreach (KeyValuePair<XATransactionId, byte[]> entry in localRecoverables)
+                if (recoveredResourceManagerIds.ContainsKey(resourceManagerId))
                 {
-                    if (entry.Key.Equals(recoverable))
+                    return;
+                }
+
+                recoveredResourceManagerIds[resourceManagerId] = true;
+
+                KeyValuePair<XATransactionId, byte[]>[] localRecoverables = RecoveryLogger.GetRecoverables();
+                if (localRecoverables.Length == 0)
+                {
+                    Tracer.Debug("Did not detect any open DTC transaction records on disk.");
+                    // No local data so anything stored on the broker can't be recovered here.
+                    return;
+                }
+
+                XATransactionId[] recoverables = TryRecoverBrokerTXIds();
+                if (recoverables.Length == 0)
+                {
+                    Tracer.Debug("Did not detect any recoverable transactions at Broker.");
+                    // Broker has no recoverable data so nothing to do here, delete the 
+                    // old recovery log as its stale.
+                    RecoveryLogger.Purge();
+                    return;
+                }
+
+                List<KeyValuePair<XATransactionId, byte[]>> matches = new List<KeyValuePair<XATransactionId, byte[]>>();
+
+                foreach (XATransactionId recoverable in recoverables)
+                {
+                    foreach (KeyValuePair<XATransactionId, byte[]> entry in localRecoverables)
                     {
-                        Tracer.DebugFormat("Found a matching TX on Broker to stored Id: {0} reenlisting.", entry.Key);
-                        matches.Add(entry);
+                        if (entry.Key.Equals(recoverable))
+                        {
+                            Tracer.DebugFormat("Found a matching TX on Broker to stored Id: {0} reenlisting.", entry.Key);
+                            matches.Add(entry);
+                        }
                     }
                 }
-            }
 
-            if (matches.Count != 0)
-            {
-                this.recoveryComplete = new CountDownLatch(matches.Count);
-
-                foreach (KeyValuePair<XATransactionId, byte[]> recoverable in matches)
+                if (matches.Count != 0)
                 {
-                    this.transactionId = recoverable.Key;
-                    Tracer.Info("Reenlisting recovered TX with Id: " + this.transactionId);
-                    this.currentEnlistment =
-                        TransactionManager.Reenlist(ResourceManagerGuid, recoverable.Value, this);
+                    this.recoveryComplete = new CountDownLatch(matches.Count);
+
+                    foreach (KeyValuePair<XATransactionId, byte[]> recoverable in matches)
+                    {
+                        this.transactionId = recoverable.Key;
+                        Tracer.Info("Reenlisting recovered TX with Id: " + this.transactionId);
+                        this.currentEnlistment =
+                            TransactionManager.Reenlist(ResourceManagerGuid, recoverable.Value, this);
+                    }
+
+                    this.recoveryComplete.await();
+                    Tracer.Debug("All Recovered TX enlistments Reports complete, Recovery Complete.");
+                    TransactionManager.RecoveryComplete(ResourceManagerGuid);
+                    return;
                 }
 
-                this.recoveryComplete.await();
-                Tracer.Debug("All Recovered TX enlistments Reports complete, Recovery Complete.");
-                TransactionManager.RecoveryComplete(ResourceManagerGuid);
-                return;
+                // The old recovery information doesn't match what's on the broker so we
+                // should discard it as its stale now.
+                RecoveryLogger.Purge();
             }
-
-            // The old recovery information doesn't match what's on the broker so we
-            // should discard it as its stale now.
-            RecoveryLogger.Purge();
         }
 
         private XATransactionId[] TryRecoverBrokerTXIds()
diff --git a/src/test/csharp/DtcConsumerTransactionsTest.cs b/src/test/csharp/DtcConsumerTransactionsTest.cs
index 706efa8..cbc1892 100644
--- a/src/test/csharp/DtcConsumerTransactionsTest.cs
+++ b/src/test/csharp/DtcConsumerTransactionsTest.cs
@@ -447,6 +447,7 @@
             VerifyDatabaseTableIsFull();
 
             // check messages are NOT present in the queue
+            NetTxTransactionContext.ResetDtcRecovery();
             VerifyBrokerQueueCount(0, newConnectionUri);
 
             Assert.AreEqual(0, Directory.GetFiles(logLocation).Length);
@@ -473,6 +474,7 @@
             VerifyDatabaseTableIsEmpty();
 
             // check messages are present in the queue
+            NetTxTransactionContext.ResetDtcRecovery();
             VerifyBrokerQueueCount();
         }
 
@@ -502,6 +504,7 @@
             VerifyDatabaseTableIsEmpty();
 
             // check messages are recovered and present in the queue 
+            NetTxTransactionContext.ResetDtcRecovery();
             VerifyBrokerQueueCount();
         }
 
@@ -534,6 +537,7 @@
             VerifyDatabaseTableIsEmpty();
 
             // check messages are present in the queue
+            NetTxTransactionContext.ResetDtcRecovery();
             VerifyBrokerQueueCount();
         }
 
@@ -566,6 +570,7 @@
             VerifyDatabaseTableIsEmpty();
 
             // check messages are present in the queue
+            NetTxTransactionContext.ResetDtcRecovery();
             VerifyBrokerQueueCount();
         }
 
diff --git a/src/test/csharp/DtcProducerTransactionsTest.cs b/src/test/csharp/DtcProducerTransactionsTest.cs
index 494586b..b7ba963 100644
--- a/src/test/csharp/DtcProducerTransactionsTest.cs
+++ b/src/test/csharp/DtcProducerTransactionsTest.cs
@@ -66,6 +66,7 @@
             VerifyDatabaseTableIsEmpty();
 
             // check messages are present in the queue
+            NetTxTransactionContext.ResetDtcRecovery();
             VerifyBrokerQueueCount();
         }
 
