diff --git a/cmake_support/OST.cmake b/cmake_support/OST.cmake
index f3d23fbb6f9c640f150b212d4c2d9ed33896c57f..fb46f78f953453d0b821303ad088ff85265a3ad8 100644
--- a/cmake_support/OST.cmake
+++ b/cmake_support/OST.cmake
@@ -486,12 +486,13 @@ macro(ost_unittest MODULE SOURCE_FILES)
     if(DEFINED CPP_TESTS)
       add_executable(${_test_name} EXCLUDE_FROM_ALL ${_SOURCES})
       if (WIN32)
-        target_link_libraries(${_test_name} "ost_${MODULE}")  
+        target_link_libraries(${_test_name} ${BOOST_UNIT_TEST_LIBRARIES} "ost_${MODULE}")  
         add_custom_target("${_test_name}_run"
                         COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${_test_name}.exe || echo
-                        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
+                        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/..
                         COMMENT "running checks for module ${MODULE}"
                         DEPENDS ${_test_name})
+        add_test("${_test_name}" ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${_test_name}.exe)
       else()
         target_link_libraries(${_test_name} ${BOOST_UNIT_TEST_LIBRARIES}
                             "ost_${MODULE}")
diff --git a/modules/img/alg/tests/test_filter.cc b/modules/img/alg/tests/test_filter.cc
index d64b2603839f644e8bcb35cfe6dde26637f93f6d..400bc1bd451d1443928cab5817a0b6da565c7979 100644
--- a/modules/img/alg/tests/test_filter.cc
+++ b/modules/img/alg/tests/test_filter.cc
@@ -21,8 +21,9 @@
 /*
   Author: Ansgar Philippsen
 */
-
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
+
 #include <iostream>
 #include <ost/img/image.hh>
 #include <ost/img/alg/filter.hh>
@@ -450,9 +451,9 @@ void FourierFiltersTest()
 }
 
 
-DLLEXPORT_IMG_ALG boost::unit_test::test_suite::test_suite* init_unit_test_suite( int argc, char* argv[] )
+boost::unit_test::test_suite* init_unit_test_suite( int argc, char* argv[] )
 {
-    boost::unit_test::test_suite::test_suite* test = BOOST_TEST_SUITE( "FiltersTest" );
+    boost::unit_test::test_suite* test = BOOST_TEST_SUITE( "FiltersTest" );
 
     test->add( BOOST_TEST_CASE( &LineIterator1DTest ) );
     test->add( BOOST_TEST_CASE( &LineIterator2DTest ) );
diff --git a/modules/img/alg/tests/test_utils.hh b/modules/img/alg/tests/test_utils.hh
index 0eb527642969ec65b7b8087ecb7b9f91666f59e8..26687e16476671fad1e05cae46bc6b755a5f5ef8 100644
--- a/modules/img/alg/tests/test_utils.hh
+++ b/modules/img/alg/tests/test_utils.hh
@@ -27,7 +27,8 @@
 
 #include <iostream>
 
-#include <boost/test/test_tools.hpp>
+#define BOOST_TEST_DYN_LINK
+#include <boost/test/unit_test.hpp>
 
 //#include <img/base.hh>
 #include <ost/img/image_state.hh>
diff --git a/modules/img/alg/tests/tests.hh b/modules/img/alg/tests/tests.hh
index 46ff55ebf4df6296cb0bce71c9745ff731c3641a..97b66c8a953b84e588f055b6685125e604a47082 100644
--- a/modules/img/alg/tests/tests.hh
+++ b/modules/img/alg/tests/tests.hh
@@ -22,5 +22,6 @@
   Author: Ansgar Philippsen
 */
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
diff --git a/modules/img/base/src/function_base.hh b/modules/img/base/src/function_base.hh
index efb654bd21874c9ad75af499c57d45653d2063fa..6360ac36b58c6286b78794784ad862c9651226eb 100644
--- a/modules/img/base/src/function_base.hh
+++ b/modules/img/base/src/function_base.hh
@@ -27,6 +27,7 @@
 #ifndef IMG_FUNCTION_BASE_H
 #define IMG_FUNCTION_BASE_H
 
+#include "module_config.hh"
 #include "data.hh"
 #include "data_observer.hh"
 #include "observable.hh"
diff --git a/modules/img/base/src/image_state/image_state_visitor.hh b/modules/img/base/src/image_state/image_state_visitor.hh
index 7fc7c7e502a780db4eeb9c39b96a090599f9484d..408941d9c64ab1c2e331f76bc1484451d228a2d2 100644
--- a/modules/img/base/src/image_state/image_state_visitor.hh
+++ b/modules/img/base/src/image_state/image_state_visitor.hh
@@ -299,7 +299,7 @@ public:
   See also common algorithms, e.g. img::alg::Stat
 */
 template <class FNC>
-class DLLEXPORT_OST_IMG_BASE ImageStateNonModVisitor: public FNC, public ImageStateNonModVisitorBase {
+class DLLEXPORT ImageStateNonModVisitor: public FNC, public ImageStateNonModVisitorBase {
 public:
   
   IMAGE_STATE_VISITOR_CTOR_ADAPTERS(ImageStateNonModVisitor)
@@ -354,7 +354,7 @@ public:
 
 */
 template <class FNC>
-class DLLEXPORT_OST_IMG_BASE ImageStateModIPVisitor: public FNC, public ImageStateModIPVisitorBase {
+class DLLEXPORT ImageStateModIPVisitor: public FNC, public ImageStateModIPVisitorBase {
 public:
   IMAGE_STATE_VISITOR_CTOR_ADAPTERS(ImageStateModIPVisitor)
 
@@ -461,7 +461,7 @@ public:
 
 */
 template <class FNC>
-class DLLEXPORT_OST_IMG_BASE ImageStateModOPVisitor: public FNC, public ImageStateModOPVisitorBase {
+class DLLEXPORT ImageStateModOPVisitor: public FNC, public ImageStateModOPVisitorBase {
 public:
 
   IMAGE_STATE_VISITOR_CTOR_ADAPTERS(ImageStateModOPVisitor)
diff --git a/modules/img/base/src/null_function.hh b/modules/img/base/src/null_function.hh
index 29087c848b96ea83f105f46e7419a78c1908d63c..23243824308ef51ebccc83e7742e9b824abda4f6 100644
--- a/modules/img/base/src/null_function.hh
+++ b/modules/img/base/src/null_function.hh
@@ -27,6 +27,7 @@
 #ifndef IMG_NULL_FUNCTION_H
 #define IMG_NULL_FUNCTION_H
 
+#include "module_config.hh"
 #include "function_base.hh"
 
 namespace ost { namespace img {
@@ -36,7 +37,7 @@ namespace ost { namespace img {
   Implements Function interface, will always
   return zero
 */
-class DLLEXPORT_OST_IMG_BASE NullFunction: public Function {
+class DLLEXPORT NullFunction: public Function {
 public:
   NullFunction():
     Function(SPATIAL) 
@@ -47,6 +48,8 @@ public:
   virtual Real GetIntpolReal(const Vec3& v) const {return 0.0;}
 
   virtual Complex GetIntpolComplex(const Vec3& v) const {return Complex(0.0,0.0);}
+  
+  virtual ~NullFunction(){};
 };
 
 }} // namespace
diff --git a/modules/img/base/src/observable.hh b/modules/img/base/src/observable.hh
index 77c00411005a728c07fa6e822e277515ef5e7efc..831d1c8ea0683f3a2354bdbc3d4368cfc1ae8d91 100644
--- a/modules/img/base/src/observable.hh
+++ b/modules/img/base/src/observable.hh
@@ -39,7 +39,7 @@ namespace ost { namespace img {
   and ObserverUpdate
 */
 template <class T>
-class DLLEXPORT_OST_IMG_BASE Observable {
+class DLLEXPORT Observable {
   typedef std::list<T *> ObserverList;
   typedef typename ObserverList::iterator ObserverIter;
   typedef typename ObserverList::const_iterator ObserverConstIter;
diff --git a/modules/img/base/tests/CMakeLists.txt b/modules/img/base/tests/CMakeLists.txt
index b51491b9dc147857dedca6bc811691baa756f115..420287a47a44f863db056cb9ce17062c24e9f95c 100644
--- a/modules/img/base/tests/CMakeLists.txt
+++ b/modules/img/base/tests/CMakeLists.txt
@@ -17,6 +17,6 @@ tests.cc
 
 
 ost_unittest(img "${OST_IMG_BASE_UNIT_TESTS}")
-if(NOT WIN32)
+
 target_link_libraries(img_tests ost_img_alg)
-endif()
+
diff --git a/modules/img/base/tests/test_data.hh b/modules/img/base/tests/test_data.hh
index 1e72598ed44f55149966c54c00db0cb97c3774ce..34f80f1d8f5b2feeec966200c3e97195637a5c1e 100644
--- a/modules/img/base/tests/test_data.hh
+++ b/modules/img/base/tests/test_data.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_DATA_H
 #define IMG_TEST_DATA_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_domains.cc b/modules/img/base/tests/test_domains.cc
index 05cf10217f3faaf6a448618441d8f4bf56f32af9..8a8d22935068968bc0b6e3359cdaeac11619f3a3 100644
--- a/modules/img/base/tests/test_domains.cc
+++ b/modules/img/base/tests/test_domains.cc
@@ -24,6 +24,7 @@
 
 #include <sstream>
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_extent.hh b/modules/img/base/tests/test_extent.hh
index 4d452b217fcdf65fa3575a2f6e97bba4bf614143..75eb950c4fb1ca9bfef7856eb37cef9f44488e74 100644
--- a/modules/img/base/tests/test_extent.hh
+++ b/modules/img/base/tests/test_extent.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_EXTENT_H
 #define IMG_TEST_EXTENT_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_function.hh b/modules/img/base/tests/test_function.hh
index 4e1d05295235e98e903d9fc13c9fb0722e4e81c0..c0c9f509cc35162dcc5a3e0fb78fd8264a63431f 100644
--- a/modules/img/base/tests/test_function.hh
+++ b/modules/img/base/tests/test_function.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_FUNCTION_H
 #define IMG_TEST_FUNCTION_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_image.hh b/modules/img/base/tests/test_image.hh
index 7120d2338049bc2fde17056142de4f54b578b8a4..a8119a975ff911998f33d295902f4dbec6789656 100644
--- a/modules/img/base/tests/test_image.hh
+++ b/modules/img/base/tests/test_image.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_IMAGE_H
 #define IMG_TEST_IMAGE_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_image_factory.hh b/modules/img/base/tests/test_image_factory.hh
index 6912f13698ff1e40e8d59b13828f6754bdbed2ff..aeaffb84e5394fe73700bbe53f4da1e3b97f4ee6 100644
--- a/modules/img/base/tests/test_image_factory.hh
+++ b/modules/img/base/tests/test_image_factory.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_IMAGE_FACTORY_H
 #define IMG_TEST_IMAGE_FACTORY_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_image_impl.hh b/modules/img/base/tests/test_image_impl.hh
index 5cbee44f54b4a79912dea0f9e5e1367933c50bf4..10effda5f6eb76fa9c4df3762283159b63633bff 100644
--- a/modules/img/base/tests/test_image_impl.hh
+++ b/modules/img/base/tests/test_image_impl.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_IMAGE_IMPL_H
 #define IMG_TEST_IMAGE_IMPL_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_image_state.hh b/modules/img/base/tests/test_image_state.hh
index b288c5a0482283c8d3fb0ec0710a7d82d640224c..13735a9ad26527802eddbd68072447b4362a9f4d 100644
--- a/modules/img/base/tests/test_image_state.hh
+++ b/modules/img/base/tests/test_image_state.hh
@@ -25,6 +25,7 @@
 #ifndef TEST_IMAGE_STATE_H
 #define TEST_IMAGE_STATE_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_image_state_visitor.hh b/modules/img/base/tests/test_image_state_visitor.hh
index 6cbe26de8d8c8239de6c7314b8165be603c8a1e0..a85f5130ecd164bc60d0008d3e9a923365f25d03 100644
--- a/modules/img/base/tests/test_image_state_visitor.hh
+++ b/modules/img/base/tests/test_image_state_visitor.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_IMAGE_STATE_VISITOR_H
 #define IMG_TEST_IMAGE_STATE_VISITOR_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_index.hh b/modules/img/base/tests/test_index.hh
index 5056c4db244ab049ab24716b44c3fa1f8f511c3b..9c21122b2c6d7edf7aa536a2944d63554e66d109 100644
--- a/modules/img/base/tests/test_index.hh
+++ b/modules/img/base/tests/test_index.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_INDEX_H
 #define IMG_TEST_INDEX_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_point.hh b/modules/img/base/tests/test_point.hh
index 1c5d20a57c13051b61c071c1ff601eb826cafaea..6b790bc077855517ff84290bc55cf2ed83363641 100644
--- a/modules/img/base/tests/test_point.hh
+++ b/modules/img/base/tests/test_point.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_POINT_H
 #define IMG_TEST_POINT_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_sampling.hh b/modules/img/base/tests/test_sampling.hh
index 6854438fc682e33aa5e41c68f0e8674c48a0b18c..cb808f567eb6593203beb1efd8565f601f68e76d 100644
--- a/modules/img/base/tests/test_sampling.hh
+++ b/modules/img/base/tests/test_sampling.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_SAMPLING_H
 #define IMG_TEST_SAMPLING_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_size.hh b/modules/img/base/tests/test_size.hh
index 2a35c3e850a796277e5b2a6dbd24c20d04531f33..61b456f29a9f2e654bd68f04942721511d3d6fef 100644
--- a/modules/img/base/tests/test_size.hh
+++ b/modules/img/base/tests/test_size.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_SIZE_H
 #define IMG_TEST_SIZE_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_transform.hh b/modules/img/base/tests/test_transform.hh
index cf6b002f7a3d806d4066f8da4d39f19d8206caf7..2569640d50ad21977372ee42bbe4e7d8884542b6 100644
--- a/modules/img/base/tests/test_transform.hh
+++ b/modules/img/base/tests/test_transform.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_TRANSFORM_H
 #define IMG_TEST_TRANSFORM_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;
 
diff --git a/modules/img/base/tests/test_value_holder.hh b/modules/img/base/tests/test_value_holder.hh
index 6f2de7bb260a8336120a13bad16af087872b09c8..ecf2d998d692f481ef67fb67c97e0e6993859da5 100644
--- a/modules/img/base/tests/test_value_holder.hh
+++ b/modules/img/base/tests/test_value_holder.hh
@@ -25,6 +25,7 @@
 #ifndef IMG_TEST_VALUE_HOLDER_H
 #define IMG_TEST_VALUE_HOLDER_H
 
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 using boost::unit_test_framework::test_suite;