diff -r 9287c8d5285d modules/base/src/main/java/com/sun/javafx/binding/BidirectionalContentBinding.java
--- a/modules/base/src/main/java/com/sun/javafx/binding/BidirectionalContentBinding.java	Thu Jun 18 09:23:43 2015 -0400
+++ b/modules/base/src/main/java/com/sun/javafx/binding/BidirectionalContentBinding.java	Thu Jun 18 17:01:04 2015 +0200
@@ -308,7 +308,8 @@
                         final Map<K, V> dest = (map1 == change.getMap())? map2 : map1;
                         if (change.wasRemoved()) {
                             dest.remove(change.getKey());
-                        } else {
+                        } 
+                        if (change.wasAdded()) {
                             dest.put(change.getKey(), change.getValueAdded());
                         }
                     } finally {
diff -r 9287c8d5285d modules/base/src/test/java/javafx/binding/BindingsMapTest.java
--- a/modules/base/src/test/java/javafx/binding/BindingsMapTest.java	Thu Jun 18 09:23:43 2015 -0400
+++ b/modules/base/src/test/java/javafx/binding/BindingsMapTest.java	Thu Jun 18 17:01:04 2015 +0200
@@ -25,6 +25,8 @@
 
 package javafx.binding;
 
+import java.util.Observable;
+
 import javafx.beans.binding.*;
 import javafx.beans.property.MapProperty;
 import javafx.beans.property.SimpleMapProperty;
@@ -33,7 +35,9 @@
 import javafx.beans.value.ObservableValue;
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableMap;
+
 import com.sun.javafx.binding.ErrorLoggingUtiltity;
+
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -1132,5 +1136,15 @@
         Bindings.stringValueAt(localProperty, (ObservableValue<String>)null);
     }
     
+    @Test
+    public void testContentBind() {
+        ObservableMap<String, Object> m1 = FXCollections.observableHashMap();
+        ObservableMap<String, Object> m2 = FXCollections.observableHashMap();
+        Bindings.bindContentBidirectional(m1, m2);
+        m1.put("key", "val1");
+        m1.put("key", "val2");
+        assertEquals("val2", m2.get("key"));
+    }
+    
     
 }

