diff --git a/scripts/check-dist.sh b/scripts/check-dist.sh
index bacc725af685c41111044851e5e5b7b4096db08c..29e0433ba9e01929098944bb7c34b7efd22a8d56 100755
--- a/scripts/check-dist.sh
+++ b/scripts/check-dist.sh
@@ -20,7 +20,8 @@ FEMDIR="$DUNEDIR/dune-fem"
 SCRIPTSDIR="$FEMDIR/scripts"
 OPTSDIR="$SCRIPTSDIR/opts"
 
-MODULES="dune-common dune-geometry dune-grid dune-istl dune-spgrid dune-fem dune-alugrid"
+MODULES="dune-common dune-geometry dune-grid dune-istl dune-localfunctions dune-spgrid dune-fem dune-alugrid dune-fem-dg"
+EXISTINGMODULES=""
 
 # fetch missing tarballs from website
 # -----------------------------------
@@ -49,6 +50,8 @@ for MODULE in $MODULES ; do
     echo "Fatal: No tarball available for $MODULE"
     exit 1
   fi
+
+  EXISTINGMODULES+=" $MODULE"
 done
 
 # perform tests
@@ -95,11 +98,26 @@ for OPTS in `cd $OPTSDIR ; ls *.opts` ; do
   CHECKLOG="$WORKINGDIR/${OPTS%.opts}-check.out"
   MAKE_CHECK_FLAGS=""
   MAKE_CHECK_FLAGS="$(source $OPTSDIR/$OPTS; echo $MAKE_CHECK_FLAGS)"
-  if ! $SCRIPTSDIR/check-tests.sh $TESTDIR/dune-fem "$MAKE_CHECK_FLAGS"; then
-    echo "Error: Check failed with $OPTS (see $CHECKLOG)"
-    errors=$((errors+1))
+
+  # check for dependencies
+  MAKE_CHECK_DEPS="$(source $OPTSDIR/$OPTS; echo $MAKE_CHECK_DEPS)"
+
+  MISSINGDEPS=""
+  for dep in $MAKE_CHECK_DEPS ; do
+    if ! echo $EXISTINGMODULES | grep $dep; then
+      MISSINGDEPS+=" $dep"
+    fi
+  done
+ 
+  if test -z "$MISSINGDEPS" ; then 
+    if ! $SCRIPTSDIR/check-tests.sh $TESTDIR/dune-fem "$MAKE_CHECK_FLAGS"; then
+      echo "Error: Check failed with $OPTS (see $CHECKLOG)"
+      errors=$((errors+1))
+    fi
+    mv $WORKINGDIR/check-tests.out $CHECKLOG
+  else
+    echo "Skipping $OPTS due to missing dependencies:$MISSINGDEPS"
   fi
-  mv $WORKINGDIR/check-tests.out $CHECKLOG
 done
 
 # clean up
diff --git a/scripts/opts/config_all.opts b/scripts/opts/config_all.opts
index fd30de5b9913d8316ee6ae324205681e7445b9c1..9885be79c026d89f3ec7769f81cca68cd7555d07 100644
--- a/scripts/opts/config_all.opts
+++ b/scripts/opts/config_all.opts
@@ -20,5 +20,6 @@ MAKE_FLAGS=
 
 # These flags are necessary to perform grid specific checks!
 MAKE_CHECK_FLAGS="GRIDTYPE=ALUGRID_SIMPLEX GRIDDIM=3"
+MAKE_CHECK_DEPS="dune-alugrid"
 
 MAKE_FLAGS=-j8
diff --git a/scripts/opts/config_alu.opts b/scripts/opts/config_alu.opts
index 59eb91da69cc57f2cb6f8b3bad4cf234898491ac..c74df0427ec83d3479cee8b5eb9cb59785e842b0 100644
--- a/scripts/opts/config_alu.opts
+++ b/scripts/opts/config_alu.opts
@@ -15,5 +15,6 @@ MAKE_FLAGS=
 
 # These flags are necessary to perform grid specific checks!
 MAKE_CHECK_FLAGS="GRIDTYPE=ALUGRID_SIMPLEX GRIDDIM=2"
+MAKE_CHECK_DEPS="dune-alugrid"
 
 MAKE_FLAGS=-j8
diff --git a/scripts/opts/config_spgrid.opts b/scripts/opts/config_spgrid.opts
index 473d31275aee57456134db9120f77cc1dff62e58..7860672929c0a19e96afc30e8ad9d6f09f9aa86f 100644
--- a/scripts/opts/config_spgrid.opts
+++ b/scripts/opts/config_spgrid.opts
@@ -9,5 +9,6 @@ MAKE_FLAGS=
 
 # These flags are necessary to perform grid specific checks!
 MAKE_CHECK_FLAGS="GRIDTYPE=SPGRID GRIDDIM=2"
+MAKE_CHECK_DEPS="dune-spgrid"
 
 MAKE_FLAGS=-j8