diff --git a/m4/dune.m4 b/m4/dune.m4
index ff21a3d8e887216fb6717e09d6f335aff47d3e07..475617dff6116b1c594920453211964df2c8736c 100644
--- a/m4/dune.m4
+++ b/m4/dune.m4
@@ -535,35 +535,3 @@ AC_DEFUN([DUNE_SYMLINK],[
     AC_MSG_ERROR([No symlinks supported! You have to install dune. No inplace usage possible!])
   ])
 ])
-
-AC_DEFUN([DUNE_WEB],
-[
-  # special variable to include the documentation into the website
-  AC_ARG_WITH(duneweb,
-    AS_HELP_STRING([--with-duneweb=PATH],[Only needed for website-generation, path to checked out version of dune-web]))
-
-  AS_IF([test -n "$with_duneweb"],[
-    AS_IF([test "x$with_duneweb" != "xno"],[
-      # parameter is set. Check it
-      AC_MSG_CHECKING([whether passed Dune-Web ($with_duneweb) directory appears correct])
-      WEBTESTFILE="$with_duneweb/layout/default.wml"
-      AS_IF([test -d "$with_duneweb" -a -e "$WEBTESTFILE"],[
-         AC_MSG_RESULT([ok])
-         # normalize path
-         with_duneweb=`(cd $with_duneweb && pwd)` ;
-      ],[
-         AS_IF([test -d "$with_duneweb"],[
-           AC_MSG_ERROR([$WEBTESTFILE not found in Dune-web dir $with_duneweb!])
-         ],[
-           AC_MSG_ERROR([Dune-Web directory $with_duneweb not found!])
-         ])
-         with_duneweb=no
-      ])
-    ])
-     DUNE_ADD_SUMMARY_ENTRY([dune web],[$with_duneweb])
-  ],[
-    with_duneweb=no
-  ])
-  AC_SUBST(DUNEWEBDIR, $with_duneweb)
-  AM_CONDITIONAL(DUNEWEB, [test "x$with_duneweb" != "xno"])
-])
diff --git a/m4/dune_all.m4 b/m4/dune_all.m4
index e3b9fd3308cbccd0eaa140895156d3105a18353d..934c4522d99de76235e9ec18323fc6f2cb6f8a75 100644
--- a/m4/dune_all.m4
+++ b/m4/dune_all.m4
@@ -11,7 +11,6 @@
 AC_DEFUN([DUNE_CHECK_ALL],[
   # doxygen and latex take a lot of time...
   AC_REQUIRE([DUNE_DOCUMENTATION])
-  AC_REQUIRE([DUNE_WEB])
 
   AC_ARG_ENABLE(enabledist,
     AS_HELP_STRING([--enable-dist],
@@ -75,6 +74,7 @@ AC_DEFUN([DUNE_ADD_SUMMARY_MOD_ENTRY],[
 
 AC_DEFUN([DUNE_SUMMARY_ALL],[
   # show search results
+  AC_REQUIRE([DUNE_OFFICIAL_TARBALLS])
 
   echo
   echo "Found the following Dune-components: "
@@ -86,6 +86,14 @@ AC_DEFUN([DUNE_SUMMARY_ALL],[
   echo
   echo "----------------------------------------"
   echo
+  
+  AS_IF([test "x$enable_officialtarballs" = "xyes"],[
+    echo Dune official tarball mode!
+    echo
+    echo "----------------------------------------"
+    echo
+  ])
+
   echo "See ./configure --help and config.log for reasons why a component wasn't found"
   echo
 
@@ -103,3 +111,8 @@ AC_DEFUN([DUNE_CHECK_ALL_M],[
   AC_REQUIRE([DUNE_CHECK_ALL])
   AC_REQUIRE([DUNE_AUTOBUILD_FLAGS])
 ])
+
+AC_DEFUN([DUNE_OFFICIAL_TARBALLS],[
+  AC_ARG_ENABLE(officialtarballs,
+    AS_HELP_STRING([--disable-officialtarballs],[enforce configuration necessary for official tarballs]))
+])
diff --git a/m4/dune_common.m4 b/m4/dune_common.m4
index 93501625e6193060c3c061b31e9f39b9efa1bd71..ab5abaa7eda07d7d36d283ab458b911af7887c14 100644
--- a/m4/dune_common.m4
+++ b/m4/dune_common.m4
@@ -66,19 +66,6 @@ AC_DEFUN([DUNE_COMMON_CHECKS],
   AC_CHECK_LIB([m], [pow])
   AC_CHECK_FUNCS([sqrt strchr])
   AC_LANG_POP([C++])
-
-  # check for auxiliary tools so that it's not fatal if they're missing
-  AC_CHECK_PROGS([DOXYGEN], [doxygen], [true])
-  AM_CONDITIONAL([DOXYGEN], [test "x$DOXYGEN" != xtrue])
-  AC_CHECK_PROGS([TEX], [latex], [true])
-  AC_CHECK_PROGS([BIBTEX], [bibtex], [true])
-  AC_CHECK_PROGS([DVIPDF], [dvipdf], [true])
-  AC_CHECK_PROGS([DVIPS], [dvips], [true])
-  AC_CHECK_PROGS([WML], [wml], [true])
-  AM_CONDITIONAL([WML], [test "x$WML" != xtrue])
-  AC_CHECK_PROGS([PERL], [perl], [true])
-  AC_REQUIRE([DUNE_INKSCAPE])
-  AC_CHECK_PROGS([CONVERT], [convert], [true])
 ])
 
 AC_DEFUN([DUNE_COMMON_CHECK_MODULE],
diff --git a/m4/dune_docu.m4 b/m4/dune_docu.m4
index fcacd67fb948189830a96a437450fda05d30ff19..8866ced717ffd6cd1a4f415ede56db6643b305bb 100644
--- a/m4/dune_docu.m4
+++ b/m4/dune_docu.m4
@@ -1,20 +1,90 @@
 # searches for documentation 
 AC_DEFUN([DUNE_DOCUMENTATION],[
 
-  # if dist has been build without
-  # documentation then disable documentation 
-  # option by default 
-  DOCU_TAG_FILE="no-documentation.tag"
-  AS_IF([test -f "doc/$DOCU_TAG_FILE"],[
-    HAS_DOCUMENTATION="no"],[
-    # check whether option is chosen or not 
-    AS_IF([test "x$enable_documentation" != "xno"],[
-      HAS_DOCUMENTATION="yes"],[
-      HAS_DOCUMENTATION="no"
-    ])
+  AC_REQUIRE([DUNE_OFFICIAL_TARBALLS])
+  AC_REQUIRE([DUNE_WEB])
+  # check for auxiliary tools so that it's not fatal if they're missing
+  AC_CHECK_PROGS([DOXYGEN], [doxygen], [true])
+  AM_CONDITIONAL([DOXYGEN], [test "x$DOXYGEN" != xtrue])
+  AC_CHECK_PROGS([TEX], [latex], [true])
+  AC_CHECK_PROGS([BIBTEX], [bibtex], [true])
+  AC_CHECK_PROGS([DVIPDF], [dvipdf], [true])
+  AC_CHECK_PROGS([DVIPS], [dvips], [true])
+  AC_CHECK_PROGS([WML], [wml], [true])
+  AM_CONDITIONAL([WML], [test "x$WML" != xtrue])
+  AC_CHECK_PROGS([PERL], [perl], [true])
+  AC_REQUIRE([DUNE_INKSCAPE])
+  AC_CHECK_PROGS([CONVERT], [convert], [true])
+
+  # official tarballs require all documentation programs
+  AS_IF([test "x$enable_officialtarballs" = "xyes"],[
+    AS_IF([test "x$DOXYGEN" = "xtrue"],[
+      AC_MSG_ERROR([doxygen is missing. This program is required for official tarballs!])])
+    AS_IF([test "x$LATEX" = "xtrue"],[
+      AC_MSG_ERROR([latex is missing. This program is required for official tarballs!])])
+    AS_IF([test "x$BIBTEX" = "xtrue"],[
+      AC_MSG_ERROR([bibtex is missing. This program is required for official tarballs!])])
+    AS_IF([test "x$DVIPDF" = "xtrue"],[
+      AC_MSG_ERROR([dvipdf is missing. This program is required for official tarballs!])])
+    AS_IF([test "x$DVIPS" = "xtrue"],[
+      AC_MSG_ERROR([dvips is missing. This program is required for official tarballs!])])
+    AS_IF([test "x$WML" = "xtrue"],[
+      AC_MSG_ERROR([wml is missing. This program is required for official tarballs!])])
+    AS_IF([test "x$PERL" = "xtrue"],[
+      AC_MSG_ERROR([perl is missing. This program is required for official tarballs!])])
+    AS_IF([test "x$CONVERT" = "xtrue"],[
+      AC_MSG_ERROR([convert is missing. This program is required for official tarballs!])])
+    AS_IF([test "x$INKSCAPE" = xfalse || test "x$INKSCAPE" = xno],[
+      AC_MSG_ERROR([inkscape is missing. This program is required for official tarballs!])])
   ])
-  AC_SUBST(DOCUMENTATION_TAG_FILE, $DOCU_TAG_FILE )
+
+  # disable documentation rules
   AC_ARG_ENABLE(documentation,
    AS_HELP_STRING([--disable-documentation],[don\'t generate docs, speeds up the build]))
-  AM_CONDITIONAL(BUILD_DOCS, [test "x$HAS_DOCUMENTATION" = "xyes"])
+  AS_IF([test "x$enable_officialtarballs" = "xyes"],[
+    # official tarballs require documentation
+    AS_IF([test "x$enable_documentation" = "xno"],[
+      AC_MSG_WARN([official tarballs require documentation, ignoring '--disable-documentation'!])
+      enable_documentation="yes"
+    ])
+  ])
+  AM_CONDITIONAL(BUILD_DOCS, [test "x$enable_documentation" != "xno"])
+
+])
+
+AC_DEFUN([DUNE_WEB],
+[
+  AC_REQUIRE([DUNE_OFFICIAL_TARBALLS])
+
+  # special variable to include the documentation into the website
+  AC_ARG_WITH(duneweb,
+    AS_HELP_STRING([--with-duneweb=PATH],[Only needed for website-generation, path to checked out version of dune-web]))
+
+  # disable dune-web in official tarball mode
+  AS_IF([test "x$enable_officialtarballs" = "xyes"],[with_duneweb=""])
+
+  AS_IF([test -n "$with_duneweb"],[
+    AS_IF([test "x$with_duneweb" != "xno"],[
+      # parameter is set. Check it
+      AC_MSG_CHECKING([whether passed Dune-Web ($with_duneweb) directory appears correct])
+      WEBTESTFILE="$with_duneweb/layout/default.wml"
+      AS_IF([test -d "$with_duneweb" -a -e "$WEBTESTFILE"],[
+         AC_MSG_RESULT([ok])
+         # normalize path
+         with_duneweb=`(cd $with_duneweb && pwd)` ;
+      ],[
+         AS_IF([test -d "$with_duneweb"],[
+           AC_MSG_ERROR([$WEBTESTFILE not found in Dune-web dir $with_duneweb!])
+         ],[
+           AC_MSG_ERROR([Dune-Web directory $with_duneweb not found!])
+         ])
+         with_duneweb=no
+      ])
+    ])
+     DUNE_ADD_SUMMARY_ENTRY([dune web],[$with_duneweb])
+  ],[
+    with_duneweb=no
+  ])
+  AC_SUBST(DUNEWEBDIR, $with_duneweb)
+  AM_CONDITIONAL(DUNEWEB, [test "x$with_duneweb" != "xno"])
 ])