diff --git a/AMDiS/Makefile.in b/AMDiS/Makefile.in
index e9c5bf1ac8d8fe42b6542b15014796a2e5651527..4389e9635f6e4807a61d63e5c7cbf531dbea8ee1 100644
--- a/AMDiS/Makefile.in
+++ b/AMDiS/Makefile.in
@@ -111,6 +111,8 @@ ENABLE_MKL_FALSE = @ENABLE_MKL_FALSE@
 ENABLE_MKL_TRUE = @ENABLE_MKL_TRUE@
 ENABLE_UMFPACK_FALSE = @ENABLE_UMFPACK_FALSE@
 ENABLE_UMFPACK_TRUE = @ENABLE_UMFPACK_TRUE@
+ENABLE_ZOLTAN_FALSE = @ENABLE_ZOLTAN_FALSE@
+ENABLE_ZOLTAN_TRUE = @ENABLE_ZOLTAN_TRUE@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
diff --git a/AMDiS/bin/Makefile.in b/AMDiS/bin/Makefile.in
index 82e3224746162e3874bf797b1678407704907ce0..d42f66432905853849210a2c69b551d361b642d4 100644
--- a/AMDiS/bin/Makefile.in
+++ b/AMDiS/bin/Makefile.in
@@ -400,6 +400,8 @@ ENABLE_MKL_FALSE = @ENABLE_MKL_FALSE@
 ENABLE_MKL_TRUE = @ENABLE_MKL_TRUE@
 ENABLE_UMFPACK_FALSE = @ENABLE_UMFPACK_FALSE@
 ENABLE_UMFPACK_TRUE = @ENABLE_UMFPACK_TRUE@
+ENABLE_ZOLTAN_FALSE = @ENABLE_ZOLTAN_FALSE@
+ENABLE_ZOLTAN_TRUE = @ENABLE_ZOLTAN_TRUE@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
diff --git a/AMDiS/configure b/AMDiS/configure
index c6071d46c070984269d53ca1ff68f61ec41bb219..e41f34bb6c5b2d5091e27b256a85000e395b2028 100755
--- a/AMDiS/configure
+++ b/AMDiS/configure
@@ -462,7 +462,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT AMDIS_DEBUG_TRUE AMDIS_DEBUG_FALSE CXX CC AMDIS_INTEL_TRUE AMDIS_INTEL_FALSE AMDIS_OPENMP_TRUE AMDIS_OPENMP_FALSE OPENMP_FLAG MPI_DIR PETSC_DIR USE_PARALLEL_AMDIS_TRUE USE_PARALLEL_AMDIS_FALSE USE_PARALLEL_DOMAIN_AMDIS_TRUE USE_PARALLEL_DOMAIN_AMDIS_FALSE ENABLE_UMFPACK_TRUE ENABLE_UMFPACK_FALSE ENABLE_MKL_TRUE ENABLE_MKL_FALSE DUNE_DIR ENABLE_DUNE_TRUE ENABLE_DUNE_FALSE ENABLE_BOOST_TRUE ENABLE_BOOST_FALSE CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT AMDIS_DEBUG_TRUE AMDIS_DEBUG_FALSE CXX CC AMDIS_INTEL_TRUE AMDIS_INTEL_FALSE AMDIS_OPENMP_TRUE AMDIS_OPENMP_FALSE OPENMP_FLAG MPI_DIR PETSC_DIR USE_PARALLEL_AMDIS_TRUE USE_PARALLEL_AMDIS_FALSE USE_PARALLEL_DOMAIN_AMDIS_TRUE USE_PARALLEL_DOMAIN_AMDIS_FALSE ENABLE_ZOLTAN_TRUE ENABLE_ZOLTAN_FALSE ENABLE_UMFPACK_TRUE ENABLE_UMFPACK_FALSE ENABLE_MKL_TRUE ENABLE_MKL_FALSE DUNE_DIR ENABLE_DUNE_TRUE ENABLE_DUNE_FALSE ENABLE_BOOST_TRUE ENABLE_BOOST_FALSE CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -2159,6 +2159,16 @@ else
 fi
 
 
+
+if test $paralleldomain = true; then
+  ENABLE_ZOLTAN_TRUE=
+  ENABLE_ZOLTAN_FALSE='#'
+else
+  ENABLE_ZOLTAN_TRUE='#'
+  ENABLE_ZOLTAN_FALSE=
+fi
+
+
 # Check whether --enable-umfpack or --disable-umfpack was given.
 if test "${enable_umfpack+set}" = set; then
   enableval="$enable_umfpack"
@@ -4441,7 +4451,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 4444 "configure"' > conftest.$ac_ext
+  echo '#line 4454 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -5576,7 +5586,7 @@ fi
 
 
 # Provide some information about the compiler.
-echo "$as_me:5579:" \
+echo "$as_me:5589:" \
      "checking for Fortran 77 compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
 { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -6639,11 +6649,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6642: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:6652: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:6646: \$? = $ac_status" >&5
+   echo "$as_me:6656: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -6907,11 +6917,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6910: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:6920: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:6914: \$? = $ac_status" >&5
+   echo "$as_me:6924: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -7011,11 +7021,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7014: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7024: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7018: \$? = $ac_status" >&5
+   echo "$as_me:7028: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9356,7 +9366,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9359 "configure"
+#line 9369 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -9456,7 +9466,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9459 "configure"
+#line 9469 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11796,11 +11806,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11799: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11809: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:11803: \$? = $ac_status" >&5
+   echo "$as_me:11813: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -11900,11 +11910,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11903: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11913: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:11907: \$? = $ac_status" >&5
+   echo "$as_me:11917: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13470,11 +13480,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13473: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13483: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13477: \$? = $ac_status" >&5
+   echo "$as_me:13487: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13574,11 +13584,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13577: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13587: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13581: \$? = $ac_status" >&5
+   echo "$as_me:13591: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15777,11 +15787,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15780: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15790: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15784: \$? = $ac_status" >&5
+   echo "$as_me:15794: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16045,11 +16055,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16048: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16058: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16052: \$? = $ac_status" >&5
+   echo "$as_me:16062: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16149,11 +16159,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16152: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16162: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16156: \$? = $ac_status" >&5
+   echo "$as_me:16166: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -18982,6 +18992,13 @@ echo "$as_me: error: conditional \"USE_PARALLEL_DOMAIN_AMDIS\" was never defined
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${ENABLE_ZOLTAN_TRUE}" && test -z "${ENABLE_ZOLTAN_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"ENABLE_ZOLTAN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENABLE_ZOLTAN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${ENABLE_UMFPACK_TRUE}" && test -z "${ENABLE_UMFPACK_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"ENABLE_UMFPACK\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -19598,6 +19615,8 @@ s,@USE_PARALLEL_AMDIS_TRUE@,$USE_PARALLEL_AMDIS_TRUE,;t t
 s,@USE_PARALLEL_AMDIS_FALSE@,$USE_PARALLEL_AMDIS_FALSE,;t t
 s,@USE_PARALLEL_DOMAIN_AMDIS_TRUE@,$USE_PARALLEL_DOMAIN_AMDIS_TRUE,;t t
 s,@USE_PARALLEL_DOMAIN_AMDIS_FALSE@,$USE_PARALLEL_DOMAIN_AMDIS_FALSE,;t t
+s,@ENABLE_ZOLTAN_TRUE@,$ENABLE_ZOLTAN_TRUE,;t t
+s,@ENABLE_ZOLTAN_FALSE@,$ENABLE_ZOLTAN_FALSE,;t t
 s,@ENABLE_UMFPACK_TRUE@,$ENABLE_UMFPACK_TRUE,;t t
 s,@ENABLE_UMFPACK_FALSE@,$ENABLE_UMFPACK_FALSE,;t t
 s,@ENABLE_MKL_TRUE@,$ENABLE_MKL_TRUE,;t t
diff --git a/AMDiS/configure.ac b/AMDiS/configure.ac
index 7f0e38deea28c38b1b4db6f044f48ad305ff9521..423f93fa8953c42745523cdc7aa579811567af97 100644
--- a/AMDiS/configure.ac
+++ b/AMDiS/configure.ac
@@ -86,6 +86,7 @@ AC_ARG_ENABLE(parallel-domain,
     *) AC_MSG_ERROR(bad value${enableval} for --enable-parallel-domain) ;;
   esac],[paralleldomain=false])
 AM_CONDITIONAL(USE_PARALLEL_DOMAIN_AMDIS, test $paralleldomain = true)
+AM_CONDITIONAL(ENABLE_ZOLTAN, test $paralleldomain = true)
 
 AC_ARG_ENABLE(umfpack,
   [  --enable-umfpack  Compile with the UMFPACK direct solver library],