diff --git a/bin/dune-autogen b/bin/dune-autogen
index c4304acbef0396da23090912721237c92f10d9cd..84e19d83ec3c68fc00a32ea14ffa24936cbc807a 100755
--- a/bin/dune-autogen
+++ b/bin/dune-autogen
@@ -27,13 +27,13 @@ rm -f dune-all.m4
 rm -f $name.m4
 
 # add current dir to PATH
-PATH=`dirname $0`:$PATH
+PATH=`dirname "$0"`:$PATH
 
 # guess libtool prefix
 if test -n "$LIBTOOLIZE"; then
-    LIBTOOL_prefix=`dirname \`dirname $LIBTOOLIZE\``
+    LIBTOOL_prefix=`dirname "\`dirname "$LIBTOOLIZE"\`"`
     PATH=$LIBTOOL_prefix:$PATH
-    ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $LIBTOOL_prefix/share/aclocal"
+    ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I \"$LIBTOOL_prefix/share/aclocal\""
 fi
 
 for OPT in "$@"; do
@@ -61,7 +61,7 @@ for OPT in "$@"; do
 	-h|--help) usage ; exit 0 ;;
 	*)
             if test -d "$OPT/m4"; then
-              ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $OPT/m4"
+              ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I \"$OPT/m4\""
             fi
             if test -f "$OPT/dune-common.pc.in" ; then
 #            if test \( -d "$OPT/am" \) -a ! \( -h "$OPT/am" \) ; then
@@ -121,14 +121,14 @@ dunecontrol --only=$name m4create
 echo "--> aclocal..."
 rm -f aclocal.m4
 rm -rf autom4te.cache
-aclocal$AMVERSION -I . $ACLOCAL_FLAGS
+eval aclocal$AMVERSION "-I . $ACLOCAL_FLAGS"
 
 # create a link to the dune-common am directory
 if [ "$name" != "dune-common" ]; then
-  if [ -n "$am_dir" ] && [ -d $am_dir ]; then
+  if [ -n "$am_dir" ] && [ -d "$am_dir" ]; then
     echo "--> linking dune-common/am..."
     rm -f am
-    ln -s $am_dir am
+    ln -s "$am_dir" am
   else
     echo
     echo "Error: Could not find dune-common/am!"
diff --git a/bin/dunecontrol b/bin/dunecontrol
index 2a843a652f0d5caca4cdb597f80c65afafe2d59c..b7207868ced9a7d38994886d4c3f12828587206a 100755
--- a/bin/dunecontrol
+++ b/bin/dunecontrol
@@ -58,7 +58,7 @@ canonicalpath(){
      echo Usage: canonicalpath path >&2
      return 1
   fi
-  dirname `canonicalname "$1"`
+  dirname "`canonicalname "$1"`"
 }
 
 checkdebug () {
@@ -78,7 +78,7 @@ if test "x$DEBUG" = "xyes"; then
   set -v
 fi
 
-export PREFIX_DIR="`canonicalpath $0`/.."
+export PREFIX_DIR="`canonicalpath "$0"`/.."
 
 # create PKG_CONFIG_PATH for installed dune modules
 if test -d "$PREFIX_DIR/lib/pkgconfig"; then
@@ -91,7 +91,7 @@ fi
 ###############################################
 
 onbuildfailure() {
-  echo "Terminating $(basename $0) due to previous errors!" >&2
+  echo "Terminating $(basename "$0") due to previous errors!" >&2
   exit 1
 }
 
@@ -136,14 +136,14 @@ build_module() {
     local runcommand=run_$command
 
     # build the modules
-    local path=$(eval "echo \$PATH_${module}")
+    local path="$(eval "echo \$PATH_${module}")"
     eval echo "--- calling $command for \$NAME_${module} ---"
 	trap onbuildfailure EXIT
     if ! (
       set -e
       cd "$path"
       export module
-      eval_control $runcommand $path/$CONTROL
+      eval_control $runcommand "$path/$CONTROL"
     ); then eval echo "--- Failed to build \$NAME_${module} ---"; exit 1; fi
 	trap onfailure EXIT
 
@@ -537,15 +537,15 @@ run_default_autogen () {
        ( test -d .svn || test -d .git || test -d CVS || test -f stamp-vc ); then
       sort_modules $FOUND_MODULES
       for m in $FOUND_MODULES; do
-        path=$(eval "echo \$PATH_$m")
-        MODULE_PATHS="$MODULE_PATHS$path "
+        path="$(eval "echo \$PATH_$m")"
+        MODULE_PATHS="$MODULE_PATHS\"$path\" "
       done
       if test -f autogen.sh; then
         eval echo "WARNING: \$NAME_$module contains obsolete autogen.sh," \
             >&2
         echo "         dune-autogen is used instead." >&2
       fi
-      eval "$PREFIX_DIR/bin/dune-autogen" "$MODULE_PATHS" "$PARAMS" || exit 1
+      eval "\"$PREFIX_DIR/bin/dune-autogen\"" "$MODULE_PATHS" "$PARAMS" || exit 1
     else
       echo Skipping dune-autogen
     fi
@@ -571,7 +571,7 @@ run_default_configure () {
     # get dependencies & suggestions
     sort_modules $module
     for m in $MODULES; do
-      path=$(eval "echo \$PATH_$m")
+      path="$(eval "echo \$PATH_$m")"
       if test "x$LOCAL_USE_CMAKE" = "xyes"; then
           #
           # Translate the configure PARMS to cmake
@@ -686,13 +686,13 @@ run_default_git () {
 ###
 
 onfailure() {
-  echo "Execution of $(basename $0) terminated due to errors!" >&2
+  echo "Execution of $(basename "$0") terminated due to errors!" >&2
   exit 1
 }
 
 usage () {
   (
-    echo "Usage: $(basename $0) [OPTIONS] COMMANDS [COMMAND-OPTIONS]"
+    echo "Usage: $(basename "$0") [OPTIONS] COMMANDS [COMMAND-OPTIONS]"
     echo ""
     echo "  Execute COMMANDS for all Dune modules found. All entries in the"
     echo "  DUNE_CONTROL_PATH variable are scanned recursively for Dune modules."
@@ -747,7 +747,7 @@ create_module_list() {
     fi
 
     export MODULES=
-    RESUME="`cat $RESUME_FILE`"
+    RESUME="`cat "$RESUME_FILE"`"
     for a in $RESUME ; do
         export NAME_`fix_variable_name $a`="$a"
         fix_and_assign MODULE "$a"
@@ -940,7 +940,7 @@ case "$command" in
     create_module_list
     DUNE_CONTROL_PATH=""
     for mod in $MODULES; do
-      path=$(eval echo \$PATH_$mod)
+      path="$(eval echo \$PATH_$mod)"
       name=$(eval echo \$NAME_$mod)
       if test -f "$path/dune.module"; then
         export DUNE_CONTROL_PATH="$DUNE_CONTROL_PATH:$path/dune.module"
@@ -982,7 +982,7 @@ case "$command" in
       exit 1
     fi
     mainmod=`echo $SEARCH_MODULES`
-    eval mainmodpath=\$PATH_$mainmod
+    eval mainmodpath="\$PATH_$mainmod"
     fname="$mainmodpath/dependencies.m4"
     name=`eval echo \\${NAME_$mainmod}`
     version=`eval echo \\${VERS_$mainmod}`
@@ -1044,7 +1044,7 @@ case "$command" in
     echo "        suggests $suggestsall"
       AC_MACRO_DIR="."
       test ! -d m4 || AC_MACRO_DIR=m4
-    cat > $fname <<EOF
+    cat > "$fname" <<EOF
 # dependencies.m4 generated by dunecontrol
 
 m4_define([DUNE_AC_INIT],[
@@ -1067,7 +1067,7 @@ EOF
       mod=$(fix_variable_name $name)
       MOD=`echo $mod | tr [:lower:] [:upper:]`
       if test "x$(eval echo \$HAVE_$mod)" = "x"; then
-        cat >> $fname <<EOF
+        cat >> "$fname" <<EOF
   ### add a conditional check for $name,
   # just in case the module is not available at autogen time
   AM_CONDITIONAL([HAVE_${MOD}], false)
@@ -1080,7 +1080,7 @@ EOF
     for mod in $SORTEDMODULES_DEPS; do
       name=`eval echo \\$NAME_$mod`
       MOD=`echo $mod | tr [:lower:] [:upper:]`
-      cat >> $fname <<EOF
+      cat >> "$fname" <<EOF
   ### check dependency $name
   # invoke checks required by this module
   AC_REQUIRE([${MOD}_CHECKS])
@@ -1095,7 +1095,7 @@ EOF
     for mod in $SORTEDMODULES_SUGS; do
       name=`eval echo \\$NAME_$mod`
       MOD=`echo $mod | tr [:lower:] [:upper:]`
-      cat >> $fname <<EOF
+      cat >> "$fname" <<EOF
   ### check suggestion $name
   # invoke checks required by this module
   AC_REQUIRE([${MOD}_CHECKS])
@@ -1112,12 +1112,12 @@ EOF
       mod=$mainmod
       name=`eval echo \\$NAME_$mod`
       MOD=`echo $mod | tr [:lower:] [:upper:]`
-      cat >> $fname <<EOF
+      cat >> "$fname" <<EOF
   ### invoke checks for $name
   AC_REQUIRE([${MOD}_CHECKS])
 EOF
     fi
-    cat >> $fname <<EOF
+    cat >> "$fname" <<EOF
 ])
 EOF
   ;;
@@ -1152,7 +1152,7 @@ EOF
 
       if test -n "$RESUME_FILE"; then
           # remove the current module from the resume file
-          modules_togo=`cat $RESUME_FILE`
+          modules_togo=`cat "$RESUME_FILE"`
           for mod_togo in $modules_togo ; do
               if test "$mod_togo" != "$mod" ; then
                   echo "$mod_togo"
diff --git a/bin/dunedoxynize b/bin/dunedoxynize
index b2cbb56db6ded248c2f82d64fa674cdbe80adc87..d59e76706ea0b464b8cf7fcddac11a8c770b0070 100755
--- a/bin/dunedoxynize
+++ b/bin/dunedoxynize
@@ -10,9 +10,9 @@ DOXYDIR="doc/doxygen/"
 
 find_doxystyle()
 {
-  for i in `dirname $0`/../doc/doxygen/Doxystyle `dirname $0`/../share/dune-common/doc/doxygen/Doxystyle; do
+  for i in "`dirname "$0"`/../doc/doxygen/Doxystyle" "`dirname "$0"`/../share/dune-common/doc/doxygen/Doxystyle"; do
     if [ -f "$i" ]; then
-      export DOXYSTYLE=$i
+      export DOXYSTYLE="$i"
       return 0
     fi
   done
@@ -92,7 +92,7 @@ generate_doxyout()
 {
   echo "Generating $DOXYOUT from "
   echo "    global style"
-  cat $DOXYSTYLE > $DOXYOUT
+  cat "$DOXYSTYLE" > "$DOXYOUT"
   while [ -n "$1" ]; do
     for DOXY in Doxylocal Doxyfile.in Doxyfile; do
 	  if [ "$1/$DOXYDIR/$DOXY" -ef "$DOXYOUT" ]; then continue; fi
diff --git a/lib/dunemodules.lib b/lib/dunemodules.lib
index ce28c788190a608155783e9310622d947f0f7a6a..8eef780cd16cf362ec5b8afba19693a08e4fb8b8 100644
--- a/lib/dunemodules.lib
+++ b/lib/dunemodules.lib
@@ -46,7 +46,7 @@ BLANK="$space$tab"
 PARSER_TRIM="awk '{gsub(/^[ \\t]+|[ \\t]+$/,\"\");printf(\"%s\", \$0);}'"
 parse_control() {
   # check file existence
-  if test ! -f "$1" -o "$(basename $1)" != "$CONTROL"; then
+  if test ! -f "$1" -o "$(basename "$1")" != "$CONTROL"; then
     echo "ERROR: '$1' is no $CONTROL file" >&2
     exit 1
   fi
@@ -164,7 +164,7 @@ parse_control() {
 # try to setup the control path
 #
 setup_control_path() {
-  if test -z $DUNE_CONTROL_PATH; then
+  if test -z "$DUNE_CONTROL_PATH"; then
     DUNE_CONTROL_PATH=.
     # try pkg-config locations
     if ! pkg-config dune-common; then
@@ -189,7 +189,7 @@ setup_control_path() {
   local TMP=""
   # foreach dir in $@
   while read dir; do
-    TMP=$TMP:"$(canonicalname $dir)"
+    TMP=$TMP:"$(canonicalname "$dir")"
   done <<EOF
     $(echo $DUNE_CONTROL_PATH | sed -e 's/:\+/:/g' | tr ':' '\n')
 EOF
diff --git a/m4/dune.m4 b/m4/dune.m4
index 154dbfab8ec61f61388f10c05b056c53af4383dc..2c3a6903240d388be368edd1377774a17cae30ff 100644
--- a/m4/dune.m4
+++ b/m4/dune.m4
@@ -356,7 +356,7 @@ AC_DEFUN([DUNE_CHECK_MODULES],[
     #
     AS_IF([test -d "$with_[]_dune_module"],[
       # expand tilde / other stuff
-      _DUNE_MODULE[]_ROOT=`cd $with_[]_dune_module && pwd`
+      _DUNE_MODULE[]_ROOT=`cd "$with_[]_dune_module" && pwd`
       _DUNE_MODULE[]_LIBDIR="$_DUNE_MODULE[]_ROOT/lib"
 
       # expand search path (otherwise empty CPPFLAGS)
@@ -370,14 +370,14 @@ AC_DEFUN([DUNE_CHECK_MODULES],[
         _DUNE_MODULE[]_SRCDIR=$_DUNE_MODULE[]_ROOT
         echo "testing $_DUNE_MODULE[]_ROOT/CMakeCache.txt"
         # extract src and build path from Makefile or CMakeCache.txt, if found
-        AS_IF([test -f $_DUNE_MODULE[]_ROOT/CMakeCache.txt],[
-          _DUNE_MODULE[]_SRCDIR="`sed -ne '/^[]_dune_name[]_SOURCE_DIR:STATIC=/{s/^[]_dune_name[]_SOURCE_DIR:STATIC=//; p;}' $_DUNE_MODULE[]_ROOT/CMakeCache.txt`"
+        AS_IF([test -f "$_DUNE_MODULE[]_ROOT/CMakeCache.txt"],[
+          _DUNE_MODULE[]_SRCDIR="`sed -ne '/^[]_dune_name[]_SOURCE_DIR:STATIC=/{s/^[]_dune_name[]_SOURCE_DIR:STATIC=//; p;}' "$_DUNE_MODULE[]_ROOT/CMakeCache.txt"`"
           echo srcdir=$_DUNE_MODULE[]_SRCDIR
-                ],[test -f $_DUNE_MODULE[]_ROOT/Makefile],[
-          _DUNE_MODULE[]_SRCDIR="`sed -ne '/^abs_top_srcdir = /{s/^abs_top_srcdir = //; p;}' $_DUNE_MODULE[]_ROOT/Makefile`"
+                ],[test -f "$_DUNE_MODULE[]_ROOT/Makefile"],[
+          _DUNE_MODULE[]_SRCDIR="`sed -ne '/^abs_top_srcdir = /{s/^abs_top_srcdir = //; p;}' "$_DUNE_MODULE[]_ROOT/Makefile"`"
 		])
         _dune_cm_CPPFLAGS="-I$_DUNE_MODULE[]_SRCDIR"
-        _DUNE_MODULE[]_VERSION="`grep Version $_DUNE_MODULE[]_SRCDIR/dune.module | sed -e 's/^Version: *//'`" 2>/dev/null
+        _DUNE_MODULE[]_VERSION="`grep Version "$_DUNE_MODULE[]_SRCDIR/dune.module" | sed -e 's/^Version: *//'`" 2>/dev/null
         AS_IF([test -f "$_DUNE_MODULE[]_LIBDIR[]/lib[]_dune_lib[].la"], [
           # local modules is linked directly via the .la file
           _dune_cm_LIBS="$_DUNE_MODULE[]_LIBDIR[]/lib[]_dune_lib[].la"],[