diff --git a/ipaacalib/java/src/ipaaca/IUStore.java b/ipaacalib/java/src/ipaaca/IUStore.java
index 0edc34782123f388d725bd9b304ac324546f65db..a81b9b11530b137bd362c37bb6ae5fe12fa28044 100644
--- a/ipaacalib/java/src/ipaaca/IUStore.java
+++ b/ipaacalib/java/src/ipaaca/IUStore.java
@@ -32,7 +32,7 @@
 
 package ipaaca;
 
-import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * An IUStore maps an IUid to an IU
@@ -40,7 +40,7 @@ import java.util.HashMap;
  *
  * @param <X> type of AbstractIU stored in the store
  */
-public class IUStore<X extends AbstractIU> extends HashMap<String, X>
+public class IUStore<X extends AbstractIU> extends ConcurrentHashMap<String, X>
 {
     private static final long serialVersionUID = 1L;
 }
diff --git a/ipaacalib/java/src/ipaaca/InputBuffer.java b/ipaacalib/java/src/ipaaca/InputBuffer.java
index de2be7281d55a79225b83d513c3e7a46d9ef66a9..1a3bdb4fc76045b3858d5d9b49c6c888fd0d314a 100644
--- a/ipaacalib/java/src/ipaaca/InputBuffer.java
+++ b/ipaacalib/java/src/ipaaca/InputBuffer.java
@@ -269,8 +269,16 @@ public class InputBuffer extends Buffer
         if (event.getData() instanceof RemoteMessageIU)
         {
             RemoteMessageIU rm = (RemoteMessageIU) event.getData();
+            if (messageStore.containsKey(rm.getUid())) {
+                logger.warn("Spurious RemoteMessage event: already got this UID: "+rm.getUid());
+                return;
+            }
+            
+            //logger.info("Adding Message "+rm.getUid());
             messageStore.put(rm.getUid(), rm);
+            //logger.info("Calling handlers for Message "+rm.getUid());
             callIuEventHandlers(rm.getUid(),false, IUEventType.MESSAGE, rm.getCategory());
+            //logger.info("Removing Message "+rm.getUid());
             messageStore.remove(rm.getUid());
         }
         else if (event.getData() instanceof RemotePushIU)
diff --git a/ipaacalib/python/ivy.xml b/ipaacalib/python/ivy.xml
index 6746fd8837a3f96365383a4562a31e1d67238962..e559706ba1ca9a0010dc3d0d75e8218907fe1278 100644
--- a/ipaacalib/python/ivy.xml
+++ b/ipaacalib/python/ivy.xml
@@ -6,6 +6,8 @@
    <dependencies>
       <dependency org="google" name="protobuf-python" rev="latest.release"/>
       <dependency org="rsb" name="rsb-python" rev="latest.release"/>
+            <dependency org="spread" name="spread" rev="latest.release"/>
    </dependencies>
 
 </ivy-module>
+
diff --git a/ipaacalib/python/test/ivy.xml b/ipaacalib/python/test/ivy.xml
index 1e4d577a068bb000bea110e43879e11f2dc57063..03db403ef45bbe4494c7fa1838a7d91ba1fc3f5f 100644
--- a/ipaacalib/python/test/ivy.xml
+++ b/ipaacalib/python/test/ivy.xml
@@ -3,5 +3,7 @@
    <dependencies>
 	<dependency org="hamcrest" name="hamcrest-python" rev="latest.release"/>
         <dependency org="mockito" name="mockito-python"  rev="latest.release" />
+        <dependency org="nose" name="nose"  rev="latest.release" />
    </dependencies>
 </ivy-module>
+