diff --git a/lib/modules/Crypto.pmod b/lib/modules/Crypto.pmod
index 613c518df1e5e26565ff6446442c794963be1ed0..365478cb803b518313e585182bdc1b7d377ed634 100644
--- a/lib/modules/Crypto.pmod
+++ b/lib/modules/Crypto.pmod
@@ -8,11 +8,13 @@ private mixed crypto_module;
 
 static mixed `[](string name)
 {
-    catch {
+    mixed err = catch {
       return (crypto_module[name]
 	      || ((program) combine_path( __FILE__, "..", "Crypto" , name + ".pike"))
 	      || ((object) combine_path( __FILE__, "..","Crypto", name + ".pmod")));
     };
+    if( file_stat("Crypto/"+name) || file_stat("Crypto/"+name+".pmod") )
+      throw(err);
     return UNDEFINED;
 }