diff --git a/external_updater.py b/external_updater.py
index 130feb62e09fd08aafdcf4a57afcebf8fb5e618e..6ff4e2593fc741f15d41e2ba3d589436915e5a8b 100644
--- a/external_updater.py
+++ b/external_updater.py
@@ -128,8 +128,11 @@ def update(args):
 
 def checkall(args):
     """Handler for checkall command."""
-    for root, _dirs, files in sorted(os.walk(args.path)):
+    for root, dirs, files in os.walk(args.path):
+        dirs.sort(key=lambda d: d.lower())
         if fileutils.METADATA_FILENAME in files:
+            # Skip sub directories.
+            dirs = []
             check_update(root)