Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/InteractionEventList.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/InteractionEventList.java	(revision 563)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/InteractionEventList.java	(revision 564)
@@ -7,4 +7,5 @@
 package de.ugoe.cs.quest.eventcore.gui;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -19,6 +20,8 @@
  * @author 2011, last modified by $Author: $
  */
-@SuppressWarnings("serial")
 public class InteractionEventList extends ArrayList<Event> implements List<Event> {
+    
+    /**  */
+    private static final long serialVersionUID = 1L;
     
     /** stores the events to be handled later in the order, they should be processed */
@@ -116,11 +119,11 @@
      */
     private void addEventPair(KeyEventPair eventPair) {
-        super.add(eventPair.mFirst);
-
-        for (KeyEventPair child : eventPair.mChildren) {
+        super.add(eventPair.first);
+
+        for (KeyEventPair child : eventPair.children) {
             addEventPair(child);
         }
 
-        super.add(eventPair.mSecond);
+        super.add(eventPair.second);
     }
 
@@ -128,14 +131,17 @@
      *
      */
-    private static class KeyEventPair {
+    private static class KeyEventPair implements Serializable {
         
+        /**  */
+        private static final long serialVersionUID = 1L;
+
         /** the first key interaction event */
-        private Event mFirst;
+        private Event first;
 
         /** the second key interaction event */
-        private Event mSecond;
+        private Event second;
 
         /** the children, this event pair may have */
-        private List<KeyEventPair> mChildren = new ArrayList<KeyEventPair>();
+        private List<KeyEventPair> children = new ArrayList<KeyEventPair>();
 
         /**
@@ -148,5 +154,5 @@
                    "event pair");
             }
-            mFirst = first;
+            this.first = first;
         }
 
@@ -166,28 +172,28 @@
 
             if ((event.getType() instanceof KeyReleased) &&
-                (((KeyInteraction) mFirst.getType()).getKey() ==
+                (((KeyInteraction) first.getType()).getKey() ==
                  ((KeyInteraction) event.getType()).getKey()) &&
-                 (mSecond == null))
+                (second == null))
             {
                 // this is the release of the represented key. Store it and notify the processing.
-                mSecond = event;
+                second = event;
                 return true;
             }
             else if ((event.getType() instanceof KeyPressed) &&
-                (((KeyInteraction) mFirst.getType()).getKey() ==
-                 ((KeyInteraction) event.getType()).getKey()) &&
-                 (mSecond == null))
+                     (((KeyInteraction) first.getType()).getKey() ==
+                      ((KeyInteraction) event.getType()).getKey()) &&
+                     (second == null))
             {
                 // the key was pressed before it was released again. This happens, if the key
                 // stays pressed for a long time. Generate a key released event but do not mark
                 // the new event as processed
-                mSecond = new Event
+                second = new Event
                     (new KeyReleased(((KeyInteraction) event.getType()).getKey()),
-                     mFirst.getTarget());
+                     first.getTarget());
                 
                 return false;
             }
-            else if (((KeyInteraction) mFirst.getType()).getKey().isCombinationKey() &&
-                     (((KeyInteraction) mFirst.getType()).getKey() !=
+            else if (((KeyInteraction) first.getType()).getKey().isCombinationKey() &&
+                     (((KeyInteraction) first.getType()).getKey() !=
                       ((KeyInteraction) event.getType()).getKey()))
             {
@@ -195,5 +201,5 @@
                 // doesn't work, add the event as a new child pair, if it is a new key pressed
 
-                for (KeyEventPair child : mChildren) {
+                for (KeyEventPair child : children) {
                     if (child.process(event)) {
                         return true;
@@ -202,5 +208,5 @@
 
                 if (event.getType() instanceof KeyPressed) {
-                    mChildren.add(new KeyEventPair(event));
+                    children.add(new KeyEventPair(event));
                     return true;
                 }
@@ -219,6 +225,6 @@
          */
         private boolean isComplete() {
-            if ((mFirst != null) && (mSecond != null)) {
-                for (KeyEventPair child : mChildren) {
+            if ((first != null) && (second != null)) {
+                for (KeyEventPair child : children) {
                     if (!child.isComplete()) {
                         return false;
Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/KeyPressed.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/KeyPressed.java	(revision 563)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/KeyPressed.java	(revision 564)
@@ -80,3 +80,11 @@
     }
 
+    /* (non-Javadoc)
+     * @see java.lang.Object#hashCode()
+     */
+    @Override
+    public int hashCode() {
+        return super.getKey().hashCode();
+    }
+
 }
Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/KeyReleased.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/KeyReleased.java	(revision 563)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/KeyReleased.java	(revision 564)
@@ -80,3 +80,11 @@
     }
 
+    /* (non-Javadoc)
+     * @see java.lang.Object#hashCode()
+     */
+    @Override
+    public int hashCode() {
+        return super.getKey().hashCode();
+    }
+
 }
Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/ValueSelection.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/ValueSelection.java	(revision 563)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/ValueSelection.java	(revision 564)
@@ -94,3 +94,11 @@
     }
 
+    /* (non-Javadoc)
+     * @see java.lang.Object#hashCode()
+     */
+    @Override
+    public int hashCode() {
+        return selectedValue.hashCode();
+    }
+
 }
Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/AbstractDefaultGUIElement.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/AbstractDefaultGUIElement.java	(revision 563)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/AbstractDefaultGUIElement.java	(revision 564)
@@ -18,18 +18,6 @@
     public static final long serialVersionUID = 1L;
 
-    /** the parent interaction element */
-    private IGUIElement parent;
-
     /** the information about the original type before the mapping */
     private String originalTypeInfo;
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see GUIElement#getParent()
-     */
-    public IGUIElement getParent() {
-        return parent;
-    }
 
     /*
Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/AbstractDefaultGUIElementFactory.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/AbstractDefaultGUIElementFactory.java	(revision 563)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/AbstractDefaultGUIElementFactory.java	(revision 564)
@@ -40,5 +40,6 @@
         }
         else {
-            return object2 == null;
+            // object 1 is null but object 2 not --> return false
+            return false;
         }
     }
