diff --git a/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot b/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot
index 18c6b88..ade42ca 100755
--- a/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot
+++ b/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot
@@ -167,6 +167,30 @@
     ...    AND    Teardown Test
     ...    AND    Stop Logging    ReconcileDisabledOnuDeviceOnuGo
 
+Olt Deletion After Adapter Restart
+    [Documentation]    Validates the OLT deletion after adapter restart
+    ...    - prefered environment is two ONUs are active on each of two OLTs, but test works also with single ONU/OLT
+    ...    - restart the ONU adapter preferred via "kubectl delete pod"
+    ...    - delete one OLT immediately after the restart has been initiated
+    ...    - wait until the restart of the ONU adapter and the reconcile processing are finished
+    ...    - check whether the ONUs on the remaining OLT have been properly reconciled (if avaialable)
+    ...    - check whether the ONUs at the deleted OLT have disappeared from the device list
+    ...    - KV store data of these ONUs are deleted under:
+    ...        - <kvStorePrefix>/openonu/<deviceId>
+    ...        - <kvStorePrefix>/openonu/pm-data/<deviceId>
+    ...    - check for not deleted device(s) reason is still the same before restart (if available)
+    ...    - delete ONU and MIB-template in KV-store
+    ...    Check [VOL-4443] for more details
+    [Tags]    functionalOnuGo    OltDeletionAfterAdapterRestartOnuGo
+    [Setup]    Run Keywords    Start Logging    OltDeletionAfterAdapterRestartOnuGo
+    ...    AND    Setup Test
+    Run Keyword If    ${has_dataplane}    Clean Up Linux
+    Do Olt Deletion After Adapter Restart
+    [Teardown]    Run Keywords    Run Keyword If    ${logging}    Get Logical Id of OLT
+    ...    AND    Run Keyword If    ${logging}    Collect Logs
+    ...    AND    Teardown Test
+    ...    AND    Stop Logging    OltDeletionAfterAdapterRestartOnuGo
+
 *** Keywords ***
 Setup Suite
     [Documentation]    Set up the test suite
@@ -350,3 +374,52 @@
     Run Keyword If    "${workflow}"=="DT"    Perform Sanity Test DT     ${suppressaddsubscriber}
     ...    ELSE IF    "${workflow}"=="TT"    Perform Sanity Tests TT    ${suppressaddsubscriber}
     ...    ELSE       Perform Sanity Test    ${suppressaddsubscriber}
+
+
+Do Olt Deletion After Adapter Restart
+    [Documentation]    This keyword deletes OLT after adapter restart and checks deleted device(s) and data
+    ...    - prefered environment is two ONUs are active on each of two OLTs, but test works also with single ONU/OLT
+    ...    - restart the ONU adapter preferred via "kubectl delete pod"
+    ...    - delete one OLT immediately after the restart has been initiated
+    ...    - wait until the restart of the ONU adapter and the reconcile processing are finished
+    ...    - check whether the ONUs on the remaining OLT have been properly reconciled (if avaialable)
+    ...    - check whether the ONUs at the deleted OLT have disappeared from the device list
+    ...    - KV store data of these ONUs are deleted under:
+    ...        - <kvStorePrefix>/openonu/<deviceId>
+    ...        - <kvStorePrefix>/openonu/pm-data/<deviceId>
+    ...    - check for not deleted device(s) reason is still the same before restart (if available)
+    ...    - delete ONU and MIB-template in KV-store
+    ...    Check [VOL-4443] for more details
+    FOR    ${I}    IN RANGE    0    ${num_olts}
+        #get olt serial number
+        ${olt_serial_number}=    Set Variable    ${list_olts}[${I}][sn]
+        #validate olt states
+        ${olt_device_id}=    Get OLTDeviceID From OLT List    ${olt_serial_number}
+        Enable Device    ${olt_device_id}
+    END
+    # bring all onus to activ -> OMCI-Flows-Pushed
+    Run Keyword If    "${workflow}"=="DT"    Perform Sanity Test DT
+    ...    ELSE IF    "${workflow}"=="TT"    Perform Sanity Tests TT
+    ...    ELSE       Perform Sanity Test
+    # OLT#1 will be deleted, get its SN
+    ${olt_to_be_deleted}=    Set Variable    ${olts[0]['serial']}
+    ${olt_to_be_deleted_device_id}=    Get OLTDeviceID From OLT List    ${olt_to_be_deleted}
+    # collect all ONU device ids belonging to OLT to be deleted
+    ${onu_device_id_list_should_be_deleted}    Create List
+    Build ONU Device Id List    ${onu_device_id_list_should_be_deleted}    ${olt_to_be_deleted}
+    Log    ${onu_device_id_list_should_be_deleted}
+    Reconcile Onu Adapter    ${NAMESPACE}    ${usekill2restart}    ACTIVE    ${olt_to_be_deleted}
+    # validate OLT and all corresponding ONUs are removed
+    Validate all ONUS for OLT Removed    ${num_all_onus}    ${hosts}    ${olt_to_be_deleted}    ${timeout}
+    Validate Device Removed    ${olt_to_be_deleted}
+    # validate for alle removed ONUs KV store date deleted
+    FOR  ${onu_device_id}  IN  @{onu_device_id_list_should_be_deleted}
+        Log  ${onu_device_id}
+        Wait Until Keyword Succeeds    ${timeout}    1s    Validate Onu Data In Etcd Removed    ${INFRA_NAMESPACE}
+        ...    ${onu_device_id}    ${kvstoreprefix}    without_pm_data=False
+    END
+    FOR    ${I}    IN RANGE    0    ${num_all_onus}
+        ${src}=    Set Variable    ${hosts.src[${I}]}
+        Continue For Loop If    "${olt_to_be_deleted}"=="${src['olt']}"
+        Current State Test    omci-flows-pushed    ${src['onu']}
+    END
