diff --git a/makefiles/include.mk b/makefiles/include.mk
index 4df4c4c..b93ba1d 100644
--- a/makefiles/include.mk
+++ b/makefiles/include.mk
@@ -42,7 +42,6 @@
 include $(ONF_MAKEDIR)/commands/include.mk   # Tools and local installers
 
 include $(ONF_MAKEDIR)/virtualenv.mk#        # lint-{jjb,python} depends on venv
-include $(ONF_MAKEDIR)/patches/include.mk#   # Patch when python 3.10+ in use
 include $(ONF_MAKEDIR)/lint/include.mk
 
 include $(ONF_MAKEDIR)/gerrit/include.mk
diff --git a/makefiles/lint/robot/install.mk b/makefiles/lint/robot/install.mk
index b1f871c..d6cc842 100644
--- a/makefiles/lint/robot/install.mk
+++ b/makefiles/lint/robot/install.mk
@@ -28,7 +28,7 @@
 ## Intent: Install rflint python virtualenv package
 ## -----------------------------------------------------------------------
 $(lint-robot-cmd) : lint-robot-install
-lint-robot-install: venv-activate-patched
+lint-robot-install:
     # Verify package mentioned in requirements.txt
     # grep 'robotframework-lint' requirements.txt
 	$(activate) && pip freeze | grep 'robotframework-lint'
@@ -42,4 +42,3 @@
 	@echo
 
 # [EOF]
-
diff --git a/makefiles/patches/README.md b/makefiles/patches/README.md
deleted file mode 100644
index 56455c1..0000000
--- a/makefiles/patches/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Howto create a python 3.10+ patch
-
-1) Checkout voltha-docs
-2) cd voltha-docs
-3) make venv
-4) make patch-init
-5) modify the file to be patched beneath staging/${relative_path_to_patch}
-6) make patch-create PATCH_PATH=${relative_path_to_patch}
-    o This will create patches/${relative_path_to_patch}/patch
-7) Verify
-    o make sterile
-    o make venv
-
-# Howto apply python 3.10+ patches
-
-See repo:voltha-docs for a working example.
-
-1) Modify Makefile
-2) Add target
-
-# [EOF]
\ No newline at end of file
diff --git a/makefiles/patches/help.mk b/makefiles/patches/help.mk
deleted file mode 100644
index d43e119..0000000
--- a/makefiles/patches/help.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-# -*- makefile -*-
-# -----------------------------------------------------------------------
-# Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
-#
-# 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.
-# -----------------------------------------------------------------------
-
-ifdef VERBOSE
-  help :: help-patches
-else
-  help ::
-	@echo
-	@echo "[PATCHES] - helper on the road to python 3.10+ based testing"
-	@echo '  see also: help-patches'
-endif
-
-help-patches:
-	@echo
-	@echo "[PATCHES] - helper on the road to python 3.10+ based testing"
-	@echo "  patch-apply          Apply patches to the virtualenv directory"
-	@echo "  patch-create"
-	@echo "  patch-gather         Gather a list of potential patch sources"
-	@echo "  patch-init           Clone the virtualenv directory for patch creation."
-
-
-
-
-help-trailer ::
-	@echo "[SEE ALSO] patches-help"
-
-help-verbose ::
-	$(HIDE)$(MAKE) --no-print-directory help VERBOSE=1
-
-# [EOF]
diff --git a/makefiles/patches/include.mk b/makefiles/patches/include.mk
deleted file mode 100644
index 7aa581a..0000000
--- a/makefiles/patches/include.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- makefile -*-
-# -----------------------------------------------------------------------
-# Copyright 2022-2024 Open Networking Foundation (ONF) and the ONF Contributors
-#
-# 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.
-# -----------------------------------------------------------------------
-
-include $(ONF_MAKEDIR)/patches/help.mk
-
-patch-gather-args += --exclude=Makefile
-patch-gather-args += --exclude-dir=vault
-patch-gather-args += --exclude-dir=makefiles
-patch-gather-args += --exclude-dir=staging
-patch-gather-args += --exclude-dir=patches
-
-# patch-gather-args += -e 'from collections import'
-patch-gather-args += '-e' 'from collections import Mapping'
-patch-gather-args += '-e' 'from collections import MutableMapping'
-
-# Defined by [Mm]akefile or makefiles/virtualenv.mk
-venv-name   ?= $(error $(MAKE) venv-name= is required)
-
-PATCH_PATH  ?= $(error $(MAKE) PATCH_PATH= is required)
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-patch-gather:
-	grep -r $(patch-gather-args)
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-patch-diff:
-	$(HIDE)diff -qr staging $(venv-name) \
-	    | awk '{print "# diff -Naur "$$2" "$$4}' \
-	    | tee $@.log
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-patch-create:
-	mkdir -p patches/$(PATCH_PATH)
-	diff -Naur staging/$(PATCH_PATH) $(venv-name)/$(PATCH_PATH) | tee patches/$(PATCH_PATH)/patch
-	exit 1
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-patch-init:
-	find "$(venv-name)" -name '__pycache__' -type d -print0 \
-	    | xargs -I'{}' --null --no-run-if-empty $(RM) -r {}
-	mkdir -p staging
-	rsync -rv --checksum "$(venv-name)/." "staging/."
-	@echo "Modify files beneath staging/ to create a patch source"
-
-# [SEE ALSO]
-# ---------------------------------------------------------------------------
-# https://bobbyhadz.com/blog/python-importerror-cannot-import-name-mapping-from-collections
-# ---------------------------------------------------------------------------
-# [EOF]
diff --git a/makefiles/virtualenv.mk b/makefiles/virtualenv.mk
index 8beef54..6b781e3 100644
--- a/makefiles/virtualenv.mk
+++ b/makefiles/virtualenv.mk
@@ -43,6 +43,7 @@
 ##    o place on the right side of colon as a target dependency
 ##    o When the script does not exist install the virtual env and display.
 ## ----------------------------------------------------------------------
+venv-activate-script: $(venv-activate-script)
 $(venv-activate-script):
 	@echo
 	@echo "============================="
@@ -61,18 +62,6 @@
 ## Intent: Explicit named installer target w/o dependencies.
 ##         Makefile targets should depend on venv-activate-script.
 ## -----------------------------------------------------------------------
-venv-activate-patched := $(venv-activate-script).patched
-venv-activate-patched : $(venv-activate-patched)
-$(venv-activate-patched) : $(venv-activate-script)
-	$(call banner-enter,Target $@)
-	$(onf-mk-top)/../patches/python_310_migration.sh --venv "$(venv-name)" 'apply'
-	touch $@
-	$(call banner-leave,Target $@)
-
-## -----------------------------------------------------------------------
-## Intent: Explicit named installer target w/o dependencies.
-##         Makefile targets should depend on venv-activate-script.
-## -----------------------------------------------------------------------
 venv: $(venv-activate-script)
 
 ## -----------------------------------------------------------------------
