diff --git a/bin/setup-dunepy.py b/bin/setup-dunepy.py
index 1b4c6c193fa8a98006feffbf121a604dcee73f36..3b436603729fcb3f1e2ed5ed0b973cc3e3d43196 100755
--- a/bin/setup-dunepy.py
+++ b/bin/setup-dunepy.py
@@ -103,16 +103,11 @@ def main(argv):
 
     foundModule = make_dune_py_module(dunepy, deps)
 
-    output = build_dune_py_module(dunepy, cmake_args, None, builddir, deps)
+    output = build_dune_py_module(dunepy, cmake_args, None, builddir, deps, writetagfile=True)
 
     print("CMake output")
     print(output)
 
-    # set a tag file to avoid automatic reconfiguration in builder
-    tagfile = os.path.join(dunepy, ".noconfigure")
-    f = open(tagfile, 'w')
-    f.close()
-
     if execute == "install":
         for m in deps:
             moddir = duneModules[1][m]
diff --git a/python/dune/common/module.py b/python/dune/common/module.py
index a9bd27016714bbd81d1532fc717be2dcac52fe57..3adba6d886ed3d72b03ed37f0221bcd47bf7f413 100644
--- a/python/dune/common/module.py
+++ b/python/dune/common/module.py
@@ -368,7 +368,7 @@ def make_dune_py_module(dune_py_dir=None, deps=None):
             raise RuntimeError('"' + dune_py_dir + '" contains a different version of the dune-py module.')
         logger.debug('Using dune-py module in ' + dune_py_dir)
 
-def build_dune_py_module(dune_py_dir=None, cmake_args=None, build_args=None, builddir=None, deps=None):
+def build_dune_py_module(dune_py_dir=None, cmake_args=None, build_args=None, builddir=None, deps=None, writetagfile=False):
     if dune_py_dir is None:
         dune_py_dir = get_dune_py_dir()
     if cmake_args is None:
@@ -398,6 +398,12 @@ def build_dune_py_module(dune_py_dir=None, cmake_args=None, build_args=None, bui
 
     output = configure_module(dune_py_dir, dune_py_dir, {d: prefix[d] for d in deps}, cmake_args)
     output += build_module(dune_py_dir, build_args)
+
+    if writetagfile:
+        # set a tag file to avoid automatic reconfiguration in builder
+        tagfile = os.path.join(dune_py_dir, ".noconfigure")
+        f = open(tagfile, 'w')
+        f.close()
     return output
 
 def getCXXFlags():