diff --git a/pub/config.h.in b/pub/config.h.in
index 7d352e20f859cc94413220b988fe1dd76a8b14c0..eefc046abbec90acc0faebd25999e4e725f5915b 100644
--- a/pub/config.h.in
+++ b/pub/config.h.in
@@ -18,6 +18,15 @@
    */
 #undef HAVE_ALLOCA_H
 
+/* Define to 1 if you have the <boost/format.hpp> header file. */
+#undef HAVE_BOOST_FORMAT_HPP
+
+/* Define to 1 if you have the <boost/regex.hpp> header file. */
+#undef HAVE_BOOST_REGEX_HPP
+
+/* Define to 1 if you have the <boost/shared_ptr.hpp> header file. */
+#undef HAVE_BOOST_SHARED_PTR_HPP
+
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
 
@@ -33,6 +42,16 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if you have the `boost_regex' library (-lboost_regex). */
+#undef HAVE_LIBBOOST_REGEX
+
+/* Define to 1 if you have the `boost_regex-gcc-mt' library
+   (-lboost_regex-gcc-mt). */
+#undef HAVE_LIBBOOST_REGEX_GCC_MT
+
+/* Define to 1 if you have the `boost_regex-mt' library (-lboost_regex-mt). */
+#undef HAVE_LIBBOOST_REGEX_MT
+
 /* Define to 1 if you have the `fftw3' library (-lfftw3). */
 #undef HAVE_LIBFFTW3
 
diff --git a/pub/configure b/pub/configure
index 10d5db1b207ebd6bed85c12926912e6c830d39fd..2bba34ee1008b73c1b7c661af31b082aff7a72c5 100755
--- a/pub/configure
+++ b/pub/configure
@@ -15051,6 +15051,140 @@ else
 fi
 
 
+# according to Sebastian, different boost lib versions must be expected:
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lboost_regex" >&5
+$as_echo_n "checking for main in -lboost_regex... " >&6; }
+if test "${ac_cv_lib_boost_regex_main+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lboost_regex  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_boost_regex_main=yes
+else
+  ac_cv_lib_boost_regex_main=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_boost_regex_main" >&5
+$as_echo "$ac_cv_lib_boost_regex_main" >&6; }
+if test "x$ac_cv_lib_boost_regex_main" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBBOOST_REGEX 1
+_ACEOF
+
+  LIBS="-lboost_regex $LIBS"
+
+else
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lboost_regex-mt" >&5
+$as_echo_n "checking for main in -lboost_regex-mt... " >&6; }
+if test "${ac_cv_lib_boost_regex_mt_main+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lboost_regex-mt  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_boost_regex_mt_main=yes
+else
+  ac_cv_lib_boost_regex_mt_main=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_boost_regex_mt_main" >&5
+$as_echo "$ac_cv_lib_boost_regex_mt_main" >&6; }
+if test "x$ac_cv_lib_boost_regex_mt_main" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBBOOST_REGEX_MT 1
+_ACEOF
+
+  LIBS="-lboost_regex-mt $LIBS"
+
+else
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lboost_regex-gcc-mt" >&5
+$as_echo_n "checking for main in -lboost_regex-gcc-mt... " >&6; }
+if test "${ac_cv_lib_boost_regex_gcc_mt_main+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lboost_regex-gcc-mt  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_boost_regex_gcc_mt_main=yes
+else
+  ac_cv_lib_boost_regex_gcc_mt_main=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_boost_regex_gcc_mt_main" >&5
+$as_echo "$ac_cv_lib_boost_regex_gcc_mt_main" >&6; }
+if test "x$ac_cv_lib_boost_regex_gcc_mt_main" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBBOOST_REGEX_GCC_MT 1
+_ACEOF
+
+  LIBS="-lboost_regex-gcc-mt $LIBS"
+
+else
+
+            as_fn_error "\"Linking against boost::regex library failed.\"" "$LINENO" 5
+
+fi
+
+
+fi
+
+
+fi
+
+
+# in the future, check our own yamlcpp source
+#AC_CHECK_FILE([yamlcpp/yaml.h], [LDFLAGS="-L"`pwd`"/yamlcpp"],
+#              [AC_MSG_ERROR(yamlcpp not found or corrupted)])
+#
+
 # Checks for header files
 ## I put this one here only because qmake does: Make sure off_t is 64-bit in *nix, taken from http://www.google.com/search?q=cache:wlNJ8Qe4dBgJ:www.sfr-fresh.com/unix/privat/libfb-v0.18.4b-src.zip:a/src/rtlib/configure.ac+configure.ac+file+offset+bits&hl=de&ct=clnk&cd=5&gl=de&client=firefox-a
 
@@ -15247,6 +15381,7 @@ _ACEOF
 
 fi
 
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then :
@@ -15373,10 +15508,20 @@ fi
 
 done
 
-# boost usability test does not work (see config.log: deep dependencies
-# not fulfilled)
-# AC_CHECK_HEADER([boost/shared_ptr.hpp], ,
-#	[AC_MSG_ERROR(boost/shared_ptr.hpp not found)])
+for ac_header in boost/regex.hpp boost/format.hpp boost/shared_ptr.hpp
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
 
 # Checks for typedefs, structures, and compiler characteristics
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
diff --git a/pub/configure.ac b/pub/configure.ac
index 4157cbd907e0ddc499e3e85c1c1f51baf533f5e5..60a68d52a826dba89a974a073f7c28f71bb96cb7 100644
--- a/pub/configure.ac
+++ b/pub/configure.ac
@@ -55,17 +55,29 @@ AC_CHECK_LIB([lmmin], [lm_minimize], ,
 AC_CHECK_LIB([kww], [kwwcf], ,
 		       [AC_MSG_ERROR(libkww not found or out of sync)])
 
+# according to Sebastian, different boost lib versions must be expected:
+AC_CHECK_LIB(boost_regex, main, , [
+    AC_CHECK_LIB(boost_regex-mt, main, , [
+        AC_CHECK_LIB(boost_regex-gcc-mt, main, , [
+            AC_MSG_ERROR("Linking against boost::regex library failed.")
+        ])
+    ])
+]) 
+
+# in the future, check our own yamlcpp source
+#AC_CHECK_FILE([yamlcpp/yaml.h], [LDFLAGS="-L"`pwd`"/yamlcpp"],
+#              [AC_MSG_ERROR(yamlcpp not found or corrupted)])
+#
+
 # Checks for header files
 ## I put this one here only because qmake does: Make sure off_t is 64-bit in *nix, taken from http://www.google.com/search?q=cache:wlNJ8Qe4dBgJ:www.sfr-fresh.com/unix/privat/libfb-v0.18.4b-src.zip:a/src/rtlib/configure.ac+configure.ac+file+offset+bits&hl=de&ct=clnk&cd=5&gl=de&client=firefox-a
 AC_DEFINE([_FILE_OFFSET_BITS],64,[File offset bits])
 
 AC_FUNC_ALLOCA
+
 AC_HEADER_STDC
 AC_CHECK_HEADERS([fcntl.h inttypes.h libintl.h malloc.h stddef.h stdlib.h string.h sys/time.h unistd.h])
-# boost usability test does not work (see config.log: deep dependencies
-# not fulfilled)
-# AC_CHECK_HEADER([boost/shared_ptr.hpp], ,
-#	[AC_MSG_ERROR(boost/shared_ptr.hpp not found)])
+AC_CHECK_HEADERS([boost/regex.hpp boost/format.hpp boost/shared_ptr.hpp])
 
 # Checks for typedefs, structures, and compiler characteristics
 AC_HEADER_STDBOOL
diff --git a/pub/src/func.cpp b/pub/src/func.cpp
index 21196c71f95b39ae32932d2f369acd1dc948c835..a5a47b1a4b6ab90445e1a62a722a5cd36fdd1897 100644
--- a/pub/src/func.cpp
+++ b/pub/src/func.cpp
@@ -358,7 +358,7 @@ CCoord CFunc::coord( class CCoord *co1, class CCoord *co2 ) const
     CCoord co = *co1;
 
     if ( s=="+" || s=="-" ) {
-        if( co1->name!=co2->name ){
+        if( co1->name==co2->name ){
             if( co1->unit!=co2->unit )
                 throw string( "same coordinate name and different units" 
                               " in additive operation" );
diff --git a/pub/src/yamc.h b/pub/src/yamc.h
index b0dd8c7533e4cbcfbc44d080554bf8e6015e3058..1588f5dd406661e657aa00557ce903c9188b4171 100644
--- a/pub/src/yamc.h
+++ b/pub/src/yamc.h
@@ -6,7 +6,7 @@
 //* read YAML data files, using libyaml                                    *//
 //**************************************************************************//
 
-#include "yaml.h"
+#include </io/yaml.h>
 
 class CYamlRead {
  public: