diff --git a/configure.ac b/configure.ac
index e904938032a0e674d3999c9debc48851d7cb2dcc..f62d06f65a77e9b445c24b6938a9eb7c1fe769ed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -43,6 +43,7 @@ AC_CONFIG_FILES([Makefile
      am/Makefile
      share/Makefile
      share/bash-completion/Makefile
+     share/bash-completion/completions/Makefile
      dune-common.pc])
 # make scripts executable
 AC_CONFIG_FILES([
diff --git a/share/bash-completion/CMakeLists.txt b/share/bash-completion/CMakeLists.txt
index bcf34af1be125cb7a03f8f7227bc59fcec7c3474..451b2779b2b5c8df072e8af62e5e7ef1a8f9b467 100644
--- a/share/bash-completion/CMakeLists.txt
+++ b/share/bash-completion/CMakeLists.txt
@@ -1,4 +1 @@
-install(FILES
-  dune.complete
-  DESTINATION ${CMAKE_INSTALL_DATADIR}/share/bash-completion/
-)
+add_subdirectory("completions")
diff --git a/share/bash-completion/Makefile.am b/share/bash-completion/Makefile.am
index 021f1b26977af65199cae0c7eb899031e64384b2..824efb22052ee17c2e46fea7ada0f8bd883ab47c 100644
--- a/share/bash-completion/Makefile.am
+++ b/share/bash-completion/Makefile.am
@@ -1,11 +1,6 @@
 # $Id$
 
-am_DATA = dune.complete
-
-# Not all file names seem to be treated equal by _DATA.
-# inkscape.am no-check-without-lib have to be listed in
-# EXTRA_DIST to be included into the tarball.
-EXTRA_DIST = CMakeLists.txt
-completedir = $(datarootdir)/bash-completion/
+SUBDIRS = completions
 
+# include further rules needed by Dune
 include $(top_srcdir)/am/global-rules
diff --git a/share/bash-completion/completions/CMakeLists.txt b/share/bash-completion/completions/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2b334409353a928ad9185cd59097b7b346d44a45
--- /dev/null
+++ b/share/bash-completion/completions/CMakeLists.txt
@@ -0,0 +1,4 @@
+install(FILES
+  dunecontrol
+  DESTINATION ${CMAKE_INSTALL_DATADIR}/share/bash-completion/
+)
diff --git a/share/bash-completion/completions/Makefile.am b/share/bash-completion/completions/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..db8d2cd9d71d0c9351274fc524b1dc28d11f7ebe
--- /dev/null
+++ b/share/bash-completion/completions/Makefile.am
@@ -0,0 +1,11 @@
+# $Id$
+
+completions_DATA = dunecontrol
+
+# Not all file names seem to be treated equal by _DATA.
+# inkscape.am no-check-without-lib have to be listed in
+# EXTRA_DIST to be included into the tarball.
+EXTRA_DIST = CMakeLists.txt
+completionsdir = $(datarootdir)/bash-completion/completions
+
+include $(top_srcdir)/am/global-rules
diff --git a/share/bash-completion/dunecontrol b/share/bash-completion/completions/dunecontrol
similarity index 100%
rename from share/bash-completion/dunecontrol
rename to share/bash-completion/completions/dunecontrol