Index: trunk/src/scriptbuilder/structures/TimeSlice.java
===================================================================
--- trunk/src/scriptbuilder/structures/TimeSlice.java	(revision 76)
+++ trunk/src/scriptbuilder/structures/TimeSlice.java	(revision 89)
@@ -58,4 +58,5 @@
     public void addEvent(I_ScriptEvent event)
     {
+        event.assignTimeSlice(this);
         events.add(event);
         Collections.sort(events);
Index: trunk/src/scriptbuilder/structures/events/I_ScriptEvent.java
===================================================================
--- trunk/src/scriptbuilder/structures/events/I_ScriptEvent.java	(revision 7)
+++ trunk/src/scriptbuilder/structures/events/I_ScriptEvent.java	(revision 89)
@@ -3,4 +3,5 @@
 import scriptbuilder.structures.ScriptEvent;
 import scriptbuilder.structures.ScriptEvent.ScriptEventType;
+import scriptbuilder.structures.TimeSlice;
 
 /**
@@ -19,4 +20,16 @@
      */
     int getLength();
+    
+    /**
+     * Remove this event from the timeslice it's in.
+     */
+    void removeThis();
+    
+    /**
+     * Give this event access to the timeslice it's in.
+     * 
+     * @param ts the timeslice which contains this event
+     */
+    void assignTimeSlice(TimeSlice ts);
 
     /**
Index: trunk/src/scriptbuilder/structures/ScriptEvent.java
===================================================================
--- trunk/src/scriptbuilder/structures/ScriptEvent.java	(revision 76)
+++ trunk/src/scriptbuilder/structures/ScriptEvent.java	(revision 89)
@@ -82,4 +82,6 @@
      */
     public int length;
+    
+    private TimeSlice slice;
 
     /**
@@ -189,3 +191,15 @@
         return event instanceof I_EvaluationEvent;
     }
+    
+    @Override
+    public void removeThis()
+    {
+        this.slice.events.remove(this);
+    }
+    
+    @Override
+    public void assignTimeSlice(TimeSlice ts)
+    {
+        this.slice = ts;
+    }
 }
