diff --git a/voltha/adapters/openolt/openolt_device.py b/voltha/adapters/openolt/openolt_device.py
index 53144a5..53cd7d0 100644
--- a/voltha/adapters/openolt/openolt_device.py
+++ b/voltha/adapters/openolt/openolt_device.py
@@ -204,7 +204,16 @@
                     try:
                         pon_intf_id_onu_id = (pon_intf_id, onu_id, uni_id)
                         # Free any PON resources that were reserved for the ONU
-                        self.resource_mgr.free_pon_resources_for_onu(pon_intf_id_onu_id)
+                        # Note: Since the ONU device is not deleted in the voltha core during
+                        # OLT post_down handling, we should not reset the ONU ID pool on the
+                        # resource manager.
+                        # The voltha core is aware of the ONU ID, and we need to ensure that ONU
+                        # IDs are not re-used for new ONUs after OLT comes back. If we reset the
+                        # ONU ID pool during OLT post_down there is a possibility that newer ONUs
+                        # may get the conflicting ONU IDs already assigned for pre-existing ONUs.
+                        # Passing the 'reset_onu_id_pool' as False, ensures that the ONU ID pool
+                        # is not reset during OLT down scenario.
+                        self.resource_mgr.free_pon_resources_for_onu(pon_intf_id_onu_id, False)
                         # Free tech_profile id for ONU
                         self.resource_mgr.remove_tech_profile_id_for_onu(pon_intf_id, onu_id, uni_id)
                         # Free meter_ids for the ONU
diff --git a/voltha/adapters/openolt/openolt_resource_manager.py b/voltha/adapters/openolt/openolt_resource_manager.py
index 8fd4eb9..5ba335e 100644
--- a/voltha/adapters/openolt/openolt_resource_manager.py
+++ b/voltha/adapters/openolt/openolt_resource_manager.py
@@ -315,7 +315,7 @@
         self.resource_mgrs[intf_id].remove_flow_id_info(intf_onu_id,
                                                         flow_id)
 
-    def free_pon_resources_for_onu(self, pon_intf_id_onu_id):
+    def free_pon_resources_for_onu(self, pon_intf_id_onu_id, reset_onu_id_pool=True):
 
         pon_intf_id = pon_intf_id_onu_id[0]
         onu_id = pon_intf_id_onu_id[1]
@@ -341,9 +341,10 @@
             for flow_id in flow_ids:
                 self.free_flow_id(pon_intf_id, onu_id, uni_id, flow_id)
 
-        self.resource_mgrs[pon_intf_id].free_resource_id(pon_intf_id,
-                                                         PONResourceManager.ONU_ID,
-                                                         onu_id)
+        if reset_onu_id_pool:
+            self.resource_mgrs[pon_intf_id].free_resource_id(pon_intf_id,
+                                                             PONResourceManager.ONU_ID,
+                                                             onu_id)
 
         # Clear resource map associated with (pon_intf_id, gemport_id) tuple.
         self.resource_mgrs[pon_intf_id].remove_resource_map(pon_intf_id_onu_id)
