Index: trunk/src/scriptbuilder/structures/ScriptIncident.java
===================================================================
--- trunk/src/scriptbuilder/structures/ScriptIncident.java	(revision 103)
+++ trunk/src/scriptbuilder/structures/ScriptIncident.java	(revision 106)
@@ -159,10 +159,15 @@
         TreeMap<Integer, TimeSlice> newSlices = new TreeMap<Integer, TimeSlice>();
         
+        int latest = 0;
+        
         for(Integer k : slices.keySet())
         {
             newSlices.put(k + (offset - old), slices.get(k));
-        }
-
-        for (TimeSlice ts : slices.values())
+            latest = k + (offset - old);
+        }
+        
+        latestStart = latest;
+
+        for (TimeSlice ts : newSlices.values())
         {
             ts.shift(offset - old);
@@ -170,5 +175,5 @@
         
         slices = newSlices;
-
+        updateLength();
         script.update();
     }
Index: trunk/src/scriptbuilder/gui/panels/IncidentTimelinePanel.java
===================================================================
--- trunk/src/scriptbuilder/gui/panels/IncidentTimelinePanel.java	(revision 103)
+++ trunk/src/scriptbuilder/gui/panels/IncidentTimelinePanel.java	(revision 106)
@@ -356,5 +356,5 @@
     {
         this.incident = incident;
-        this.visible = incident != null;
+        this.visible = (incident != null);
 
         Dimension newSize;
Index: trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java
===================================================================
--- trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java	(revision 105)
+++ trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java	(revision 106)
@@ -1453,5 +1453,5 @@
                             (Integer) addIncidentNumber.getValue(), addIncidentName.getText(), addIncidentDescription.getText(),
                             script));
-            script.incidents.get(indx).length = (Integer) addIncidentLength.getValue() * 60;
+//            script.incidents.get(indx).length = (Integer) addIncidentLength.getValue() * 60;
             script.incidents.get(indx).setOffset((Integer) addIncidentStart.getValue() * 60);
             script.numberOfIncidents++;
@@ -1490,8 +1490,13 @@
 //            script.incidents.get(oldIncidentIndex).setOffset((Integer) addIncidentStart.getValue() * 60);
 
+            //adjust incident color
             script.incidents.get(oldIncidentIndex).color = selectedColor;
+            //adjust incident name
             script.incidents.get(oldIncidentIndex).name = addIncidentName.getText();
+            //adjust incident description
             script.incidents.get(oldIncidentIndex).description = addIncidentDescription.getText();
+            //change offset of incident
             script.incidents.get(oldIncidentIndex).setOffset(((int) addIncidentStart.getValue()) * 60);
+            //update incident number, if it was changed
             if ((int) addIncidentNumber.getValue() == script.incidents.get(oldIncidentIndex).number
                     || !scriptContainsLogNum(script, (int) addIncidentNumber.getValue()))
@@ -1544,5 +1549,5 @@
         addIncidentNumber.setValue(101);
         addIncidentStart.setValue(0);
-        addIncidentLength.setValue(0);
+        //addIncidentLength.setValue(0);
         incidentColorField.setBackground(Color.BLACK);
         selectedColor = Color.BLACK;
@@ -1625,5 +1630,5 @@
         zoomSliderStateChanged(new ChangeEvent(script));
     }
-    
+
     public void incidentDetailsScreen(ScriptIncident i)
     {
@@ -1634,5 +1639,5 @@
         addIncidentNumber.setValue(i.number);
         addIncidentStart.setValue(i.offset / 60);
-        addIncidentLength.setValue(i.length / 60);
+        //addIncidentLength.setValue(i.length / 60);
         incidentColorField.setBackground(i.color);
         selectedColor = i.color;
