diff --git a/VERSION b/VERSION
index 35cee72..79a6144 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.4.3
+2.4.4
diff --git a/pyvoltha/adapters/extensions/events/device_events/onu/onu_active_event.py b/pyvoltha/adapters/extensions/events/device_events/onu/onu_active_event.py
index 6927f7e..2a3f07e 100644
--- a/pyvoltha/adapters/extensions/events/device_events/onu/onu_active_event.py
+++ b/pyvoltha/adapters/extensions/events/device_events/onu/onu_active_event.py
@@ -41,9 +41,9 @@
             'pon-id': self._pon_id,
             'onu-id': self._onu_id,
             'serial-number': self._onu_serial_number,
-            'olt_serial_number': self._olt_serial_number,
-            'device_id': self._device_id,
-            'registration_id': self._reg_id
+            'olt-serial-number': self._olt_serial_number,
+            'device-id': self._device_id,
+            'registration-id': self._reg_id
         }
         if self._host is not None:
             data['host'] = self._host
diff --git a/pyvoltha/adapters/extensions/events/device_events/onu/onu_deleted_event.py b/pyvoltha/adapters/extensions/events/device_events/onu/onu_deleted_event.py
new file mode 100644
index 0000000..87bae89
--- /dev/null
+++ b/pyvoltha/adapters/extensions/events/device_events/onu/onu_deleted_event.py
@@ -0,0 +1,51 @@
+# Copyright 2017-present Adtran, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import absolute_import
+from voltha_protos.events_pb2 import EventCategory, EventSubCategory, EventType
+from pyvoltha.adapters.extensions.events.adapter_events import DeviceEventBase
+
+
+class OnuDeletedEvent(DeviceEventBase):
+    def __init__(self, event_mgr, device_id, pon_id, onu_serial_number,
+                 reg_id, olt_serial_number, raised_ts, ipv4_address=None,
+                 onu_id=None):
+        super(OnuDeletedEvent, self).__init__(event_mgr, raised_ts, object_type='ONU',
+                                             event='ONU_DELETED',
+                                             resource_id=pon_id,
+                                             category=EventCategory.COMMUNICATION,
+                                             sub_category=EventSubCategory.PON,
+                                             )
+
+        self._pon_id = pon_id
+        self._onu_id = onu_id
+        self._onu_serial_number = onu_serial_number
+        self._device_id = device_id
+        self._olt_serial_number = olt_serial_number
+        self._host = ipv4_address
+        self._reg_id = reg_id
+
+    def get_context_data(self):
+        data = {
+            'pon-id': self._pon_id,
+            'onu-id': self._onu_id,
+            'serial-number': self._onu_serial_number,
+            'olt-serial-number': self._olt_serial_number,
+            'device-id': self._device_id,
+            'registration-id': self._reg_id
+        }
+        if self._host is not None:
+            data['host'] = self._host
+
+        return data
diff --git a/pyvoltha/adapters/extensions/events/device_events/onu/onu_disabled_event.py b/pyvoltha/adapters/extensions/events/device_events/onu/onu_disabled_event.py
index ac5e422..ab5116b 100644
--- a/pyvoltha/adapters/extensions/events/device_events/onu/onu_disabled_event.py
+++ b/pyvoltha/adapters/extensions/events/device_events/onu/onu_disabled_event.py
@@ -41,9 +41,9 @@
             'pon-id': self._pon_id,
             'onu-id': self._onu_id,
             'serial-number': self._onu_serial_number,
-            'olt_serial_number': self._olt_serial_number,
-            'device_id': self._device_id,
-            'registration_id': self._reg_id
+            'olt-serial-number': self._olt_serial_number,
+            'device-id': self._device_id,
+            'registration-id': self._reg_id
         }
         if self._host is not None:
             data['host'] = self._host
diff --git a/test/unit/extensions/events/device_events/onu/test_onu_events.py b/test/unit/extensions/events/device_events/onu/test_onu_events.py
index f6c1e50..43e6a6c 100644
--- a/test/unit/extensions/events/device_events/onu/test_onu_events.py
+++ b/test/unit/extensions/events/device_events/onu/test_onu_events.py
@@ -85,9 +85,9 @@
             'pon-id': DEFAULT_PON_ID,
             'onu-id': DEFAULT_ONU_ID,
             'serial-number': DEFAULT_ONU_SN,
-            'olt_serial_number': DEFAULT_OLT_SN,
-            'device_id': DEFAULT_ONU_DEVICE_ID,
-            'registration_id': DEFAULT_ONU_REG
+            'olt-serial-number': DEFAULT_OLT_SN,
+            'device-id': DEFAULT_ONU_DEVICE_ID,
+            'registration-id': DEFAULT_ONU_REG
         }
 
         self.assertEqual(self.event.get_context_data(), expected_dict)
