diff --git a/VERSION b/VERSION
index fae6d73..e0c1a35 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-1.0.19-dev
+1.1.0-dev
 
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
