diff --git a/EduNetworkBuilder/NetTest.cs b/EduNetworkBuilder/NetTest.cs
index 5fdcd43..e602595 100644
--- a/EduNetworkBuilder/NetTest.cs
+++ b/EduNetworkBuilder/NetTest.cs
@@ -134,7 +134,10 @@ namespace EduNetworkBuilder
                     switch (TheTest)
                     {
                         case NetTestType.DeviceIsFrozen:
-                            toreturn = NB.Translate("NT_TstDscriptBadDevice");
+                            toreturn = NB.Translate("NT_TstDescriptFrozenDevice");
+                            break;
+                        case NetTestType.DeviceNeedsUPS:
+                            toreturn = NB.Translate("NT_TstDescriptNeedsUPS");
                             break;
                         case NetTestType.NeedsDefaultGW:
                             toreturn = NB.Translate("NT_TstDscriptGteway");
@@ -221,7 +224,10 @@ namespace EduNetworkBuilder
                     switch (TheTest)
                     {
                         case NetTestType.DeviceIsFrozen:
-                            toreturn = NB.Translate("NT_TstDscriptBadDevice2");
+                            toreturn = NB.Translate("NT_TstDescriptFrozenDevice2");
+                            break;
+                        case NetTestType.DeviceNeedsUPS:
+                            toreturn = NB.Translate("NT_TstDescriptNeedsUPS2");
                             break;
                         case NetTestType.NeedsDefaultGW:
                             toreturn = NB.Translate("NT_TstDiscriptGteway2");
diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs
index dbaed56..e87f5ce 100644
--- a/EduNetworkBuilder/NetworkBuilder.cs
+++ b/EduNetworkBuilder/NetworkBuilder.cs
@@ -937,24 +937,24 @@ namespace EduNetworkBuilder
             if (ItemClickedOn != null)
             {
                 ItemClickedOn.PowerOff = false;
-                if(myNetwork.ItemHasTest(ItemClickedOn.hostname,NetTestType.DeviceBlowsUpWithPower))
-                {
-                    if(!myNetwork.ItemTestIsComplete(ItemClickedOn.hostname, NetTestType.DeviceBlowsUpWithPower))
+                bool BlowUpOnce = myNetwork.ItemHasTest(ItemClickedOn.hostname, NetTestType.DeviceBlowsUpWithPower) && !myNetwork.ItemTestIsComplete(ItemClickedOn.hostname, NetTestType.DeviceBlowsUpWithPower);
+                bool BlowUpMultiple = myNetwork.ItemHasTest(ItemClickedOn.hostname, NetTestType.DeviceNeedsUPS) && !myNetwork.ItemTestIsComplete(ItemClickedOn.hostname, NetTestType.DeviceNeedsUPS);
+                if (BlowUpOnce || BlowUpMultiple)
+                {                    
+                    Rectangle Where = new Rectangle(ItemClickedOn.myLocation().X, 
+                        ItemClickedOn.myLocation().Y - ((ItemClickedOn.Size * 2) / 3), ItemClickedOn.Size, ItemClickedOn.Size);
+                    if(ItemClickedOn.IsBurned)
                     {
-                        Rectangle Where = new Rectangle(ItemClickedOn.myLocation().X, 
-                            ItemClickedOn.myLocation().Y - ((ItemClickedOn.Size * 2) / 3), ItemClickedOn.Size, ItemClickedOn.Size);
-                        if(ItemClickedOn.IsBurned)
-                        {
-                            int which = GameRandomGen.Next(3);
-                            if(which ==1)
-                                myNetwork.AddAnimation(AnimationName.Smoke1, Where);
-                            else
-                                myNetwork.AddAnimation(AnimationName.Spark1, Where);
-                        }
+                        int which = GameRandomGen.Next(3);
+                        if(which ==0)
+                            myNetwork.AddAnimation(AnimationName.Spark1, Where);
                         else
-                            myNetwork.AddAnimation(AnimationName.Fire1, Where);
-                        ItemClickedOn.IsBurned = true;
+                            myNetwork.AddAnimation(AnimationName.Smoke1, Where);
                     }
+                    else
+                        myNetwork.AddAnimation(AnimationName.Fire1, Where);
+                    ItemClickedOn.IsBurned = true;
+                    ItemClickedOn.PowerOff = true;  //It remains off.
                 }
                 UpdateLinks();
                 UpdateVisuals();
diff --git a/EduNetworkBuilder/Resources/languages/edustrings.resx b/EduNetworkBuilder/Resources/languages/edustrings.resx
index 3fe9249..b3c87b9 100644
--- a/EduNetworkBuilder/Resources/languages/edustrings.resx
+++ b/EduNetworkBuilder/Resources/languages/edustrings.resx
@@ -2001,12 +2001,20 @@
     <value>The device is not responding.</value>
     <comment>NC_Burned = The device is not responding.</comment>
   </data>
-  <data name="NT_TstDscriptBadDevice" xml:space="preserve">
-    <value>Something seems broken with this device</value>
-    <comment>NT_TstDscriptBadDevice = Something seems broken with this device</comment>
+  <data name="NT_TstDescriptFrozenDevice" xml:space="preserve">
+    <value>Device is Frozen</value>
+    <comment>NT_TstDescriptFrozenDevice</comment>
   </data>
-  <data name="NT_TstDscriptBadDevice2" xml:space="preserve">
-    <value>This Device is bad and should be replaced</value>
-    <comment>NT_TstDscriptBadDevice2 = This Device is bad and should be replaced</comment>
+  <data name="NT_TstDescriptFrozenDevice2" xml:space="preserve">
+    <value>Reboot the device</value>
+    <comment>NT_TstDescriptFrozenDevice2 = Reboot the device</comment>
+  </data>
+  <data name="NT_TstDescriptNeedsUPS" xml:space="preserve">
+    <value>Is plugged into Bad Power</value>
+    <comment>NT_TstDescriptNeedsUPS = Is plugged into bad power</comment>
+  </data>
+  <data name="NT_TstDescriptNeedsUPS2" xml:space="preserve">
+    <value>Needs a UPS</value>
+    <comment>NT_TstDescriptNeedsUPS2 = Needs a UPS</comment>
   </data>
 </root>
\ No newline at end of file