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;
+    }
 }
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/gui/IncidentEditorFrame.java
===================================================================
--- trunk/src/scriptbuilder/gui/IncidentEditorFrame.java	(revision 81)
+++ trunk/src/scriptbuilder/gui/IncidentEditorFrame.java	(revision 89)
@@ -8,5 +8,4 @@
 
 import java.awt.Adjustable;
-import java.awt.Color;
 import java.awt.event.AdjustmentEvent;
 import java.awt.event.AdjustmentListener;
@@ -54,12 +53,4 @@
      */
     private ArrayList<JButton> eventButtons = null;
-    /**
-     * True if we are currently editing an incident.
-     */
-    private boolean editingIncident;
-    /**
-     * Index of the previous incident.
-     */
-    int oldIncidentIndex;
 
     /**
@@ -127,5 +118,5 @@
             }
 
-            JButton newButton = null;
+            JButton newButton = lastButton;
             switch (e.getKeyChar())
             {
@@ -1470,5 +1461,5 @@
         addNoiseFrame.setVisible(false);
 
-        update(null, theIncident);
+        this.update(null, theIncident);
 }//GEN-LAST:event_jButton2ActionPerformed
 
@@ -1700,5 +1691,4 @@
         zoomSlider.setValue(zoomSlider.getValue() <= 5 ? 5 : zoomSlider.getValue() - 1);
     }//GEN-LAST:event_zoomOutIconMouseClicked
-    private Color selectedColor = Color.BLACK;
 
     /**
Index: trunk/src/scriptbuilder/gui/IncidentEditorFrame.form
===================================================================
--- trunk/src/scriptbuilder/gui/IncidentEditorFrame.form	(revision 81)
+++ trunk/src/scriptbuilder/gui/IncidentEditorFrame.form	(revision 89)
Index: trunk/src/scriptbuilder/gui/panels/IncidentTimelinePanel.java
===================================================================
--- trunk/src/scriptbuilder/gui/panels/IncidentTimelinePanel.java	(revision 88)
+++ trunk/src/scriptbuilder/gui/panels/IncidentTimelinePanel.java	(revision 89)
@@ -155,5 +155,5 @@
         public void mouseClicked(MouseEvent e)
         {
-            Editor ed = new Editor();
+            Editor ed = new Editor(null);
             ScriptBuilderFrame f = null;
             IncidentEditorFrame g = null;
@@ -161,8 +161,10 @@
             {
                 f = (ScriptBuilderFrame) getTopLevelAncestor();
+                
             }
             else if (getTopLevelAncestor() instanceof IncidentEditorFrame)
             {
                 g = (IncidentEditorFrame) getTopLevelAncestor();
+                ed = new Editor(g);
             }
 
Index: trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java
===================================================================
--- trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java	(revision 87)
+++ trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java	(revision 89)
@@ -158,4 +158,5 @@
         timelinesScrollPane.getHorizontalScrollBar().addAdjustmentListener(listener);
         timelinesScrollPane.getVerticalScrollBar().addAdjustmentListener(listener);
+        repaint();
     }
 
@@ -236,4 +237,5 @@
                 / Math.max(script.absoluteLength(), ScriptBuilderGuiConstants.TICK_TIMELINE_SMALLEST_LENGTH));
         zoomSlider.setMaximum(zoomSlider.getMinimum() + 20);
+        repaint();
     }
 
@@ -350,4 +352,5 @@
         editIncident = new javax.swing.JMenuItem();
         incidentDetails = new javax.swing.JMenuItem();
+        deleteIncident = new javax.swing.JMenuItem();
         jSeparator4 = new javax.swing.JPopupMenu.Separator();
         saveIncident = new javax.swing.JMenuItem();
@@ -1318,4 +1321,14 @@
         });
         incidentMenu.add(incidentDetails);
+
+        deleteIncident.setText("Delete Incident");
+        deleteIncident.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                deleteIncidentActionPerformed(evt);
+            }
+        });
+        incidentMenu.add(deleteIncident);
         incidentMenu.add(jSeparator4);
 
@@ -1555,5 +1568,5 @@
 
         incidentFrame.setVisible(false);
-        update(script, script);
+        this.update(script, script);
         repaint();
     }//GEN-LAST:event_incidentOkButtonActionPerformed
@@ -1624,5 +1637,5 @@
             script.saveFile = fc.getSelectedFile();
         }
-        update(script, script);
+        this.update(script, script);
         zoomSlider.setValue(zoomSlider.getMinimum());
         repaint();
@@ -1765,5 +1778,6 @@
         addNoiseFrame.setVisible(false);
 
-        update(script, script);
+        this.update(script, script);
+        repaint();
 }//GEN-LAST:event_jButton2ActionPerformed
 
@@ -1912,5 +1926,5 @@
         script = new SimulationScript();
         script.update();
-        update(null, script);
+        this.update(null, script);
         repaint();
     }//GEN-LAST:event_fileNewActionPerformed
@@ -1932,10 +1946,5 @@
         if (result != null)
         {
-            System.out.println("RESULT = " + result.toString());
-
             input = result.toString();
-
-            System.out.println("INPUT = " + input);
-
             int i = 0;
             for (ScriptIncident incident : script.incidents)
@@ -1959,6 +1968,53 @@
             }
         }
-        update(script, script);
+        this.update(script, script);
+        repaint();
     }//GEN-LAST:event_editIncidentActionPerformed
+
+    private void deleteIncidentActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_deleteIncidentActionPerformed
+    {//GEN-HEADEREND:event_deleteIncidentActionPerformed
+        Object[] incidentList = script.incidents.toArray();
+        String input = "";
+        ScriptIncident inc = null;
+        Object result = JOptionPane.showInputDialog(
+                this,
+                "Select Incident:",
+                "Save Incident",
+                JOptionPane.PLAIN_MESSAGE,
+                null,
+                incidentList,
+                script.incidents.get(0));
+
+        if (result != null)
+        {
+            input = result.toString();
+            int incidentIndex = 0;
+            for (ScriptIncident incident : script.incidents)
+            {
+                incidentIndex++;
+                if (incident == null)
+                {
+                    continue;
+                }
+                if (incident.toString().equals(input))
+                {
+                    inc = incident;
+                }
+            }
+
+            if (inc != null)
+            {
+                int confirm = JOptionPane.showConfirmDialog(this,
+                        "Are you sure you want to delete " + inc.toString() + "?");
+                if (confirm == JOptionPane.YES_OPTION)
+                {
+                    script.incidents.remove(inc);
+                    script.incidents.add(null);
+                }
+            }
+        }
+        this.update(script, script);
+        repaint();
+    }//GEN-LAST:event_deleteIncidentActionPerformed
 
     /**
@@ -2057,4 +2113,5 @@
     private javax.swing.JButton cancelButton;
     private javax.swing.JMenuItem deleteEventList;
+    private javax.swing.JMenuItem deleteIncident;
     private javax.swing.JMenuItem editEventList;
     private javax.swing.JMenuItem editIncident;
Index: trunk/src/scriptbuilder/gui/ScriptBuilderFrame.form
===================================================================
--- trunk/src/scriptbuilder/gui/ScriptBuilderFrame.form	(revision 83)
+++ trunk/src/scriptbuilder/gui/ScriptBuilderFrame.form	(revision 89)
@@ -792,4 +792,12 @@
               <Events>
                 <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="incidentDetailsActionPerformed"/>
+              </Events>
+            </MenuItem>
+            <MenuItem class="javax.swing.JMenuItem" name="deleteIncident">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Delete Incident"/>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="deleteIncidentActionPerformed"/>
               </Events>
             </MenuItem>
