diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag
index d28d3b1b492c2d1d731bb51d2bdb2a058c265156..18e11cb4d2800f424acb71ff82f725c955844855 100644
--- a/eraser-base/src/main/jastadd/Item.jrag
+++ b/eraser-base/src/main/jastadd/Item.jrag
@@ -137,7 +137,9 @@ aspect ItemHandling {
   //--- setStateFromBoolean ---
   public abstract void Item.setStateFromBoolean(boolean value);
   public void ColorItem.setStateFromBoolean(boolean value) {
-    setBrightness(value ? 100 : 0);
+    if (getState().getBrightness()==0) {
+      setBrightness(value ? 100 : 0);
+    }
   }
   public void DateTimeItem.setStateFromBoolean(boolean value) {
     // there is no good way here
@@ -389,6 +391,12 @@ aspect ItemHandling {
     getRoot().addRule(createControllerRule(controllerItem,this));
   }
 
+  public void Item.synchronizeWith(Item item) {
+    addControlledBy(item);
+    addControlling(item);
+  }
+
+
   
   private Rule Item.createControllerRule(Item controllerItem, Item controlledItem) {
     Rule rule = new Rule();
diff --git a/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java b/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java
index 1ea42c30dbce19cb979dfa4d19f8c52ae5cbf16e..3b0501e31c1f7fa4ca849ff3b087aa9361f4666e 100644
--- a/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java
+++ b/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java
@@ -31,7 +31,7 @@ public class ExecuteImplTest {
     lamp.enableSendState();
     TestUtils.getDefaultGroup(model).addItem(lamp);
 
-    numberItem.addControlling(lamp);
+    numberItem.synchronizeWith(lamp);
 
     Execute execute = new ExecuteImpl();
     execute.setKnowledgeBase(model.getRoot());
@@ -62,7 +62,7 @@ public class ExecuteImplTest {
     lamp.enableSendState();
     TestUtils.getDefaultGroup(model).addItem(lamp);
 
-    button.addControlling(lamp);
+    button.synchronizeWith(lamp);
 
     Execute execute = new ExecuteImpl();
     execute.setKnowledgeBase(model.getRoot());
@@ -103,10 +103,10 @@ public class ExecuteImplTest {
     lamp.enableSendState();
     TestUtils.getDefaultGroup(model).addItem(lamp);
 
-    lamp.addControlledBy(numberItem);
-    lamp.addControlledBy(stringItem);
-    lamp.addControlledBy(booleanItem);
-    lamp.addControlledBy(colorItem);
+    lamp.synchronizeWith(numberItem);
+    lamp.synchronizeWith(stringItem);
+    lamp.synchronizeWith(booleanItem);
+    lamp.synchronizeWith(colorItem);
 
     Execute execute = new ExecuteImpl();
     execute.setKnowledgeBase(model.getRoot());