diff -u -b -B -N -r --exclude CVS -ur incubator-activemq-4.0.orig/activemq-core/src/main/java/org/apache/activemq/TransactionContext.java incubator-activemq-4.0/activemq-core/src/main/java/org/apache/activemq/TransactionContext.java
--- incubator-activemq-4.0.orig/activemq-core/src/main/java/org/apache/activemq/TransactionContext.java	2006-05-08 16:22:08.000000000 -0500
+++ incubator-activemq-4.0/activemq-core/src/main/java/org/apache/activemq/TransactionContext.java	2006-06-05 15:25:16.000000000 -0500
@@ -560,8 +545,10 @@
                 if( l==null ) {
                     l = new ArrayList(3);
                     endedXATransactionContexts.put(transactionId, l);
-                }  
                 l.add(this);
+                } else if (!l.contains(this)) {
+                    l.add(this);
+                }
             }
 
             // dis-associate
