diff --git a/EduNetworkBuilder/Network.cs b/EduNetworkBuilder/Network.cs
index 040b25f..08da9f9 100644
--- a/EduNetworkBuilder/Network.cs
+++ b/EduNetworkBuilder/Network.cs
@@ -66,6 +66,7 @@ namespace EduNetworkBuilder
         private List<string> PacketColors = new List<string>();
         private List<Image> PacketImages = new List<Image>();
         private List<PingTestStatus> PingTestStats = new List<PingTestStatus>();
+        private List<string> BrokenItems = new List<string>();
 
         /// <summary>
         /// WhatFrom: If we are launched from a homework, we remember it here.
@@ -1936,6 +1937,9 @@ namespace EduNetworkBuilder
         int BreakNetComponent(NetworkComponent What, HowToBreak How, string Data)
         {
             int didit = 0;
+            if (What == null) return 0;
+            string WhatBreak = What.hostname + "-" + How.ToString() + "-" + Data;
+            if (BrokenItems.Contains(WhatBreak)) return 0; //it was already done
             NetworkDevice tDevice = null;
             NetworkLink tLink = null;
             if (What is NetworkDevice) tDevice = (NetworkDevice)What;
@@ -1998,6 +2002,8 @@ namespace EduNetworkBuilder
                         didit = 2;
                     break;
             }
+            if(didit > 0)
+                BrokenItems.Add(WhatBreak);
             if (didit > 0) Console.WriteLine("Broke it:" + What.hostname + " : " + How + " : " + Data);
             if (didit == 0) Console.WriteLine("Did not break it:" + What.hostname + " : " + How + " : " + Data);
             return didit;