diff --git a/src/python/grpcio_tests/tests/_loader.py b/src/python/grpcio_tests/tests/_loader.py
index c2f097f6c61be4fd8f0f647e3594b48f0babfc7d..621bedc7bb8c57a9db3264779bba3c8f5dcff2c6 100644
--- a/src/python/grpcio_tests/tests/_loader.py
+++ b/src/python/grpcio_tests/tests/_loader.py
@@ -84,11 +84,9 @@ class Loader(object):
         along.
     """
     for importer, module_name, is_package in (
-        pkgutil.iter_modules(package_paths)):
+        pkgutil.walk_packages(package_paths)):
       module = importer.find_module(module_name).load_module(module_name)
       self.visit_module(module)
-      if is_package:
-        self.walk_packages(module.__path__)
 
   def visit_module(self, module):
     """Visits the module, adding discovered tests to the test suite.