diff --git a/xos/synchronizer/event_steps/onu_event.py b/xos/synchronizer/event_steps/onu_event.py
index 905b6dc..bae496d 100644
--- a/xos/synchronizer/event_steps/onu_event.py
+++ b/xos/synchronizer/event_steps/onu_event.py
@@ -48,16 +48,14 @@
         value = json.loads(event.value)
         self.log.info("onu.events: received event", value=value)
 
-        att_si = self.get_att_si(value)
         if value["status"] == "activated":
             self.log.info("onu.events: activated onu", value=value)
+            att_si = self.get_att_si(value)
             att_si.onu_state = "ENABLED"
+            att_si.save_changed_fields(always_update_timestamp=True)
         elif value["status"] == "disabled":
-            self.log.info("onu.events: disabled onu", value=value)
-            att_si.onu_state = "DISABLED"
-            att_si.authentication_state = "AWAITING"
+            self.log.info("onu.events: disabled onu, not taking any action", value=value)
+            return
         else:
-            self.log.warn("onu.events: Unkown status value: %s" % value["status"], value=value)
-        att_si.save_changed_fields(always_update_timestamp=True)
-
-
+            self.log.warn("onu.events: Unknown status value: %s" % value["status"], value=value)
+            return
diff --git a/xos/synchronizer/event_steps/test_onu_events.py b/xos/synchronizer/event_steps/test_onu_events.py
index 537f535..4e939b8 100644
--- a/xos/synchronizer/event_steps/test_onu_events.py
+++ b/xos/synchronizer/event_steps/test_onu_events.py
@@ -123,23 +123,12 @@
         }
         self.event.value = json.dumps(self.event_dict)
 
-        with patch.object(AttWorkflowDriverServiceInstance.objects, "get_items") as att_si_mock , \
-            patch.object(AttWorkflowDriverService.objects, "get_items") as service_mock, \
-            patch.object(AttWorkflowDriverServiceInstance, "save", autospec=True) as mock_save:
-
-            att_si_mock.return_value = []
-            service_mock.return_value = [self.att]
+        with patch.object(AttWorkflowDriverServiceInstance, "save", autospec=True) as mock_save:
 
             self.event_step.process_event(self.event)
 
-            att_si = mock_save.call_args[0][0]
-
-            self.assertEqual(mock_save.call_count, 1)
-
-            self.assertEqual(att_si.serial_number, self.event_dict['serial_number'])
-            self.assertEqual(att_si.of_dpid, self.event_dict['of_dpid'])
-            self.assertEqual(att_si.uni_port_id, self.event_dict['uni_port_id'])
-            self.assertEqual(att_si.onu_state, "DISABLED")
+            self.assertEqual(mock_save.call_count, 0)
+            
 
 if __name__ == '__main__':
     sys.path.append("..")  # for import of helpers.py
