diff --git a/docker/NBI/Dockerfile b/docker/NBI/Dockerfile
index 9b9ccde..8e98597 100644
--- a/docker/NBI/Dockerfile
+++ b/docker/NBI/Dockerfile
@@ -53,9 +53,6 @@
     -r /usr/lib/python3/dist-packages/osm_im/requirements.txt \
     -r /usr/lib/python3/dist-packages/osm_nbi/requirements.txt
 
-COPY pyangbind.patch ./
-RUN patch /usr/local/lib/python3.10/dist-packages/pyangbind/lib/yangtypes.py < ./pyangbind.patch
-
 #######################################################################################
 FROM ubuntu:22.04 as FINAL
 
diff --git a/docker/NBI/pyangbind.patch b/docker/NBI/pyangbind.patch
deleted file mode 100644
index 3077299..0000000
--- a/docker/NBI/pyangbind.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-#######################################################################################
-# Copyright ETSI Contributors and Others.
-#
-# 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.
-#######################################################################################
-
-*** .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py	2023-05-10 06:50:57.876027148 -0400
---- .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py	2023-05-10 06:51:11.772022417 -0400
-*************** limitations under the License.
-*** 22,27 ****
---- 22,28 ----
-  from __future__ import unicode_literals
-
-  import collections
-+ from six.moves import collections_abc
-  import copy
-  import uuid
-  from decimal import Decimal
-*************** def TypedListType(*args, **kwargs):
-*** 372,378 ****
-    if not isinstance(allowed_type, list):
-      allowed_type = [allowed_type]
-
-!   class TypedList(collections.MutableSequence):
-      _pybind_generated_by = "TypedListType"
-      _list = list()
-
---- 373,379 ----
-    if not isinstance(allowed_type, list):
-      allowed_type = [allowed_type]
-
-!   class TypedList(collections_abc.MutableSequence):
-      _pybind_generated_by = "TypedListType"
-      _list = list()
-
diff --git a/docker/osmclient/Dockerfile b/docker/osmclient/Dockerfile
index 932bcdc..643ff3e 100644
--- a/docker/osmclient/Dockerfile
+++ b/docker/osmclient/Dockerfile
@@ -48,9 +48,6 @@
     -r /usr/lib/python3/dist-packages/osm_im/requirements.txt \
     -r /usr/lib/python3/dist-packages/osmclient/requirements.txt
 
-COPY pyangbind.patch ./
-RUN patch /usr/local/lib/python3.10/dist-packages/pyangbind/lib/yangtypes.py < ./pyangbind.patch
-
 #######################################################################################
 FROM ubuntu:22.04 as FINAL
 
@@ -101,4 +98,4 @@
 ENV OSM_PASSWORD    admin
 ENV OSM_PROJECT     admin
 
-ENTRYPOINT [ "/bin/bash" ]
\ No newline at end of file
+ENTRYPOINT [ "/bin/bash" ]
diff --git a/docker/osmclient/pyangbind.patch b/docker/osmclient/pyangbind.patch
deleted file mode 100644
index 3077299..0000000
--- a/docker/osmclient/pyangbind.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-#######################################################################################
-# Copyright ETSI Contributors and Others.
-#
-# 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.
-#######################################################################################
-
-*** .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py	2023-05-10 06:50:57.876027148 -0400
---- .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py	2023-05-10 06:51:11.772022417 -0400
-*************** limitations under the License.
-*** 22,27 ****
---- 22,28 ----
-  from __future__ import unicode_literals
-
-  import collections
-+ from six.moves import collections_abc
-  import copy
-  import uuid
-  from decimal import Decimal
-*************** def TypedListType(*args, **kwargs):
-*** 372,378 ****
-    if not isinstance(allowed_type, list):
-      allowed_type = [allowed_type]
-
-!   class TypedList(collections.MutableSequence):
-      _pybind_generated_by = "TypedListType"
-      _list = list()
-
---- 373,379 ----
-    if not isinstance(allowed_type, list):
-      allowed_type = [allowed_type]
-
-!   class TypedList(collections_abc.MutableSequence):
-      _pybind_generated_by = "TypedListType"
-      _list = list()
-
diff --git a/docker/tests/Dockerfile b/docker/tests/Dockerfile
index 49a1e4c..34eda45 100644
--- a/docker/tests/Dockerfile
+++ b/docker/tests/Dockerfile
@@ -65,9 +65,6 @@
 RUN mv /usr/share/osm-tests/conformance-tests/ /robot-systest/
 RUN mv /usr/share/osm-tests/charm.sh /usr/sbin/charm
 
-COPY pyangbind.patch /robot-systest
-RUN patch /usr/local/lib/python3.10/dist-packages/pyangbind/lib/yangtypes.py < /robot-systest/pyangbind.patch
-
 ARG CACHE_DATE=not_a_date
 RUN git clone \
     https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git \
diff --git a/docker/tests/pyangbind.patch b/docker/tests/pyangbind.patch
deleted file mode 100644
index 3077299..0000000
--- a/docker/tests/pyangbind.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-#######################################################################################
-# Copyright ETSI Contributors and Others.
-#
-# 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.
-#######################################################################################
-
-*** .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py	2023-05-10 06:50:57.876027148 -0400
---- .tox/cover/lib/python3.10/site-packages/pyangbind/lib/yangtypes.py	2023-05-10 06:51:11.772022417 -0400
-*************** limitations under the License.
-*** 22,27 ****
---- 22,28 ----
-  from __future__ import unicode_literals
-
-  import collections
-+ from six.moves import collections_abc
-  import copy
-  import uuid
-  from decimal import Decimal
-*************** def TypedListType(*args, **kwargs):
-*** 372,378 ****
-    if not isinstance(allowed_type, list):
-      allowed_type = [allowed_type]
-
-!   class TypedList(collections.MutableSequence):
-      _pybind_generated_by = "TypedListType"
-      _list = list()
-
---- 373,379 ----
-    if not isinstance(allowed_type, list):
-      allowed_type = [allowed_type]
-
-!   class TypedList(collections_abc.MutableSequence):
-      _pybind_generated_by = "TypedListType"
-      _list = list()
-
