diff --git a/Lib/os.py b/Lib/os.py
index 2c7d954..ed2a31e 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -294,8 +294,7 @@
     for name in dirs:
         new_path = join(top, name)
         if followlinks or not islink(new_path):
-            for x in walk(new_path, topdown, onerror, followlinks):
-                yield x
+            yield from walk(new_path, topdown, onerror, followlinks)
     if not topdown:
         yield top, dirs, nondirs
 
@@ -339,8 +338,7 @@
         try:
             if (followlinks or (st.S_ISDIR(orig_st.st_mode) and
                                 path.samestat(orig_st, fstat(topfd)))):
-                for x in _fwalk(topfd, top, topdown, onerror, followlinks):
-                    yield x
+                yield from _fwalk(topfd, top, topdown, onerror, followlinks)
         finally:
             close(topfd)
 
@@ -377,8 +375,7 @@
             try:
                 if followlinks or path.samestat(orig_st, fstat(dirfd)):
                     dirpath = path.join(toppath, name)
-                    for x in _fwalk(dirfd, dirpath, topdown, onerror, followlinks):
-                        yield x
+                    yield from _fwalk(dirfd, dirpath, topdown, onerror, followlinks)
             finally:
                 close(dirfd)
 
