diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9981e10c2cf2082b2b3667daf3e48b5bff8a7019..4a46dc9b45b8d0cb4b1e0f5c87eb8dfa7811ce82 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -176,7 +176,7 @@ setup_compiler_flags()
 
 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY)
 
-if (ENABLE_STATIC)
+if (ENABLE_STATIC AND UNIX AND NOT APPLE)
   set (CMAKE_FIND_LIBRARY_SUFFIXES .a)
 endif()
 
diff --git a/cmake_support/OST.cmake b/cmake_support/OST.cmake
index a1645e0950aee0e53515f7300ab9af2f830d5e4f..06e352919217f98e380ab796e085c3e1f77d36b7 100644
--- a/cmake_support/OST.cmake
+++ b/cmake_support/OST.cmake
@@ -142,7 +142,9 @@ macro(module)
             "invalid use of module(): a module name must be provided")
   endif()
 
-
+  if (ENABLE_STATIC AND _ARG_NO_STATIC)
+    return()
+  endif()
   if (_ARG_HEADER_OUTPUT_DIR)
     set(_HEADER_OUTPUT_DIR ${_ARG_HEADER_OUTPUT_DIR})
   else()
@@ -299,15 +301,17 @@ macro(executable)
   endforeach()
   if (ENABLE_STATIC AND _ARG_STATIC)
     target_link_libraries(${_ARG_NAME} ${STATIC_LIBRARIES})
-    if (OST_GCC_45)    
-      set_target_properties(${_ARG_NAME}
-                            PROPERTIES LINK_SEARCH_END_STATIC TRUE  
-                            LINK_FLAGS "-static-libgcc -static-libstdc++ -static -pthread")
-    else()
-      set_target_properties(${_ARG_NAME}
-                            PROPERTIES LINK_SEARCH_END_STATIC TRUE  
-                            LINK_FLAGS "-static-libgcc -static -pthread")
-    endif()        
+    if (UNIX AND NOT APPLE)
+      if (OST_GCC_45)    
+        set_target_properties(${_ARG_NAME}
+                              PROPERTIES LINK_SEARCH_END_STATIC TRUE  
+                              LINK_FLAGS "-static-libgcc -static-libstdc++ -static -pthread")
+      else()
+        set_target_properties(${_ARG_NAME}
+                              PROPERTIES LINK_SEARCH_END_STATIC TRUE  
+                              LINK_FLAGS "-static-libgcc -static -pthread")
+      endif()        
+    endif()
   endif()
   install(TARGETS ${_ARG_NAME} DESTINATION bin)
 endmacro()
@@ -474,6 +478,9 @@ macro(pymod)
   if (NOT _ARG_NAME)
     message(FATAL_ERROR "invalid use of pymod(): a name must be provided")
   endif()
+  if (ENABLE_STATIC)
+    return()
+  endif()
   if (_ARG_OUTPUT_DIR)
     set(PYMOD_DIR "openstructure/${_ARG_OUTPUT_DIR}")
   else()