Index: trunk/src/scriptbuilder/structures/ScriptIncident.java
===================================================================
--- trunk/src/scriptbuilder/structures/ScriptIncident.java	(revision 117)
+++ trunk/src/scriptbuilder/structures/ScriptIncident.java	(revision 119)
@@ -208,5 +208,5 @@
             latestStart = start;
         }
-            //If this event is earlier than all previous events, or if there are 
+        //If this event is earlier than all previous events, or if there are 
         //no other events, the offset is equal to this event's start time
         if (start < offset || eventCount == 1)
@@ -392,8 +392,37 @@
         if (seconds == offset)
         {
-            offset = slices.firstKey();
+            if (slices.size() > 0)
+            {
+                offset = slices.firstKey();
+            }
+            else
+            {
+                offset = 0;
+            }
         }
         this.updateLength();
         script.update();
     }
+
+    /**
+     * Shifts the start time of a given event in this incident. The first event
+     * in the incident cannot be shifted.
+     *
+     * @param evt the event to be relocated
+     * @param oldTime the current start time of the event
+     * @param newTime the destination start time of the event
+     * @return true if the event is shifted over properly
+     * @pre the event in question exists
+     * @pre oldTime != newTime
+     */
+    public boolean changeEventStart(I_ScriptEvent evt, int oldTime, int newTime)
+    {
+        if (!(oldTime == 0 && newTime > oldTime))
+        {
+            this.slices.get(oldTime).events.remove(evt);
+            this.addNewEvent(evt, newTime);
+            return true;
+        }
+        return false;
+    }
 }
