Index: trunk/src/scriptbuilder/structures/TimeSlice.java
===================================================================
--- trunk/src/scriptbuilder/structures/TimeSlice.java	(revision 21)
+++ trunk/src/scriptbuilder/structures/TimeSlice.java	(revision 30)
@@ -8,4 +8,5 @@
 import java.util.TimeZone;
 import scriptbuilder.gui.ScriptBuilderGuiConstants;
+import scriptbuilder.structures.events.*;
 import scriptbuilder.structures.events.I_ScriptEvent;
 
@@ -194,6 +195,6 @@
 
     /**
-     * Converts the contents of this timeslice to a correctly
-     * formatted <ScriptEvent> XML element.
+     * Converts the contents of this timeslice to a correctly formatted
+     * <ScriptEvent> XML element.
      *
      * @return XML conversion of this timeslice.
@@ -202,4 +203,11 @@
     public String toXML()
     {
+        ArrayList<I_ScriptEvent> eventsCopy = new ArrayList<I_ScriptEvent>();
+
+        for (I_ScriptEvent e : events)
+        {
+            eventsCopy.add(e);
+        }
+
         System.out.println("Seconds:: " + seconds);
         String output = openTag(ELEMENT.SCRIPT_EVENT.tag);
@@ -212,5 +220,22 @@
         output += thisIncident.name + closeTag(ELEMENT.INCIDENT.tag);
 
-        for (I_ScriptEvent ev : events)
+        output += openTag(ELEMENT.CAD_DATA.tag);
+        if (containsCADIncidentEvent())
+        {
+            output += openTag(ELEMENT.CAD_INCIDENT_EVENT.tag);
+            for (I_ScriptEvent ev : eventsCopy)
+            {
+                if (ev instanceof I_XML_Writable && isCADIncidentEvent(ev))
+                {
+                    I_XML_Writable ex = (I_XML_Writable) ev;
+                    output += ex.toXML();
+                    eventsCopy.remove(ev);
+                }
+            }
+            output += closeTag(ELEMENT.CAD_INCIDENT_EVENT.tag);
+        }
+        output += closeTag(ELEMENT.CAD_DATA.tag);
+
+        for (I_ScriptEvent ev : eventsCopy)
         {
             if (ev instanceof I_XML_Writable)
@@ -242,3 +267,22 @@
         return "<" + s + "/>\n";
     }
+
+    private boolean containsCADIncidentEvent()
+    {
+        for (I_ScriptEvent ev : events)
+        {
+            if (isCADIncidentEvent(ev))
+            {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean isCADIncidentEvent(I_ScriptEvent ev)
+    {
+        return ev instanceof AudioEvent || ev instanceof UnitEvent
+                || ev instanceof ParamicsEvent || ev instanceof TowEvent
+                || ev instanceof WitnessEvent;
+    }
 }
