diff --git a/satella/os/misc.py b/satella/os/misc.py
index d01fcd4abb3823bf87df775ae8c79df986ffe3df..456aad4fdfd8aa4063c75b915e5fbeb666959303 100644
--- a/satella/os/misc.py
+++ b/satella/os/misc.py
@@ -44,17 +44,17 @@ def safe_listdir(directory: str) -> tp.Iterator[str]:
         return
 
 
-@silence_excs(FileNotFoundError)
 def _whereis(directory: str, name, available_extensions):
     for file in safe_listdir(directory):
         path = os.path.join(directory, file)
-        if 'x' in stat.filemode(os.stat(path).st_mode):
-            if sys.platform.startswith('win'):  # a POSIX-specific check
-                file = file.upper()  # paths are not case-sensitive on Windows
-
-            for extension in available_extensions:
-                if file == '%s%s' % (name, extension):
-                    yield path
+        with silence_excs(FileNotFoundError):
+            if 'x' in stat.filemode(os.stat(path).st_mode):
+                if sys.platform.startswith('win'):  # a POSIX-specific check
+                    file = file.upper()  # paths are not case-sensitive on Windows
+
+                for extension in available_extensions:
+                    if file == '%s%s' % (name, extension):
+                        yield path
 
 
 def is_running_as_root() -> bool: