diff --git a/lib/dunemodules.lib b/lib/dunemodules.lib
index d2f41bfc0ab10d400d062f3a7f2fa2529e8b1ae3..6f442c05af735eaca833eee0d27fd83f120c58ca 100644
--- a/lib/dunemodules.lib
+++ b/lib/dunemodules.lib
@@ -69,7 +69,8 @@ parse_control() {
   # - source module: ${path}/dune.module
   #   and there is a file ${path}/${name}.pc.in
   local path="$(canonicalpath "$1")"
-  if test -f $path/../../../lib/dunecontrol/${name}/dune.module; then
+  if test ! -f $path/dune.module -a \
+     -f $path/../../../lib/dunecontrol/${name}/dune.module; then
 	  path=$(canonicalname "$path/../../../")
       export module_inst="yes"
   fi