diff --git a/satella/os/misc.py b/satella/os/misc.py
index 125869b1658a67d3f52e28a1505f5bd16077a01f..4f37be17a9e428eb8553cf6e5d6a4b641143ba32 100644
--- a/satella/os/misc.py
+++ b/satella/os/misc.py
@@ -26,7 +26,8 @@ def whereis(name: str) -> tp.Iterator[str]:
 
     for directory in paths_to_look_in:
         for file in os.listdir(directory):
-            if 'x' not in stat.filemode(os.stat(os.path.join(directory, file)).st_mode):
+            path = os.path.join(directory, file)
+            if 'x' not in stat.filemode(os.stat(path).st_mode):
                 continue
 
             if sys.platform.startswith('win'):  # a POSIX-specific check
@@ -34,7 +35,7 @@ def whereis(name: str) -> tp.Iterator[str]:
 
             for extension in available_extensions:
                 if file == '%s%s' % (name, extension):
-                    yield os.path.join(directory, file)
+                    yield path
 
 
 def is_running_as_root() -> bool: