diff --git a/3rdparty/lapack/CMakeLists.txt b/3rdparty/lapack/CMakeLists.txt
index 6f498bd9ecfaeee9f9e3e0d4838688042a181623..12487817c8e05c49bedd691aebcf6bcd6c8c6cdf 100644
--- a/3rdparty/lapack/CMakeLists.txt
+++ b/3rdparty/lapack/CMakeLists.txt
@@ -60,4 +60,15 @@ set_target_properties(${the_target}
 	DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
 	ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty/lib
 	)
+    
+if(NOT BUILD_SHARED_LIBS)
+    set_target_properties(${the_target}
+	PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+    
+    install(TARGETS ${the_target}
+	    RUNTIME DESTINATION bin COMPONENT main
+	    LIBRARY DESTINATION lib COMPONENT main
+	    ARCHIVE DESTINATION lib COMPONENT main)
+endif()
+    
 endif() #android
diff --git a/3rdparty/zlib/CMakeLists.txt b/3rdparty/zlib/CMakeLists.txt
index 67b1f34f8740feecaab5a74d0e5b481ccd57c04c..7184ecdc350b2fa42c6ed560d00d6bea6a55931f 100644
--- a/3rdparty/zlib/CMakeLists.txt
+++ b/3rdparty/zlib/CMakeLists.txt
@@ -1,11 +1,11 @@
 if(ANDROID)
-define_3rdparty_module(zlib)
+define_3rdparty_module(opencv_zlib)
 else()
 # ----------------------------------------------------------------------------
 #  CMake file for zlib. See root CMakeLists.txt
 #
 # ----------------------------------------------------------------------------
-PROJECT(zlib)
+PROJECT(opencv_zlib)
 
 # List of C++ files:
 
@@ -18,7 +18,7 @@ file(GLOB lib_srcs *.c)
 file(GLOB lib_hdrs *.h)
 set(lib_ext_hdrs "../include/zlib.h" "../include/zconf.h")
 
-set(the_target "zlib")
+set(the_target "opencv_zlib")
 
 add_library(${the_target} STATIC ${lib_srcs} ${lib_hdrs} ${lib_ext_hdrs})
 
@@ -39,4 +39,11 @@ set_target_properties(${the_target}
         ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/lib"
     )
 
+if(NOT BUILD_SHARED_LIBS)
+    set_target_properties(${the_target}
+        PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+    install(TARGETS ${the_target}
+	    ARCHIVE DESTINATION lib COMPONENT main)
+endif()
+
 endif(ANDROID)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 785e5ea997009ad5b072f68d768289c749fccb1d..cc257e57aa1e79d2d4c4468085b518e40d06fe5e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -965,8 +965,6 @@ IF(NOT BUILD_SHARED_LIBS)
     if(CMAKE_COMPILER_IS_GNUCXX)
         set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} stdc++)
     endif()
-
-    set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} opencv_flann zlib opencv_lapack)
 endif()
 
 
@@ -1067,18 +1065,6 @@ set(CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE "\"\"")
 
 set(CMAKE_LIB_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/lib")
 
-# This will expand to, for example, <program files>/OpenCV 1.1.0/include
-set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/include\" 
-                                    \"\${THIS_OPENCV_CONFIG_PATH}/include/opencv\" 
-                                    \"\${THIS_OPENCV_CONFIG_PATH}/3rdparty/include\"")
-
-set(CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}\"")
-
-# This will expand to, for example, <program files>/OpenCV 1.1.0/lib
-# support for 3rdparty libraries.
-set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/lib\" 
-                                \"\${THIS_OPENCV_CONFIG_PATH}/3rdparty/lib\"")
-
 exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/unix-install/\"" OUTPUT_VARIABLE RET_VAL)
 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
 
@@ -1093,6 +1079,17 @@ endif()
 if(WIN32)
     # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
     # support for 3rdparty libraries.
+    # This will expand to, for example, <program files>/OpenCV 1.1.0/include
+    set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/include\" 
+                                        \"\${THIS_OPENCV_CONFIG_PATH}/include/opencv\" 
+                                        \"\${THIS_OPENCV_CONFIG_PATH}/3rdparty/include\"")
+
+    set(CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}\"")
+
+    # This will expand to, for example, <program files>/OpenCV 1.1.0/lib
+    # support for 3rdparty libraries.
+    set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/lib\" 
+                                    \"\${THIS_OPENCV_CONFIG_PATH}/3rdparty/lib\"")
 
     #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/win-install/\"")
     exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/win-install/\"" OUTPUT_VARIABLE RET_VAL)
diff --git a/OpenCVConfig.cmake.in b/OpenCVConfig.cmake.in
index 895d8a39963ee14de8a93f5e21046882b4f03bd6..00ef551d6b1f7627ded3b6b7106d6d4aef4598de 100644
--- a/OpenCVConfig.cmake.in
+++ b/OpenCVConfig.cmake.in
@@ -82,7 +82,12 @@ endif(NOT @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@ STREQUAL  "")
 #  many more dependencies:
 IF (NOT @OPENCV_BUILD_SHARED_LIB@)
 	# Under static libs, the user of OpenCV needs access to the 3rdparty libs as well:
-	#LINK_DIRECTORIES(@CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@/3rdparty/lib")
+    if(UNIX)
+        LINK_DIRECTORIES(@CMAKE_LIB_DIRS_CONFIGCMAKE@/../3rdparty/lib)
+    else()
+        LINK_DIRECTORIES(@CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@/3rdparty/lib)
+    endif()
+    
 
 	SET(OpenCV_LIBS
 		@OPENCV_LINKER_LIBS@
@@ -92,7 +97,9 @@ IF (NOT @OPENCV_BUILD_SHARED_LIB@)
 		@TIFF_LIBRARIES@
 		@JASPER_LIBRARIES@
 		@HIGHGUI_LIBRARIES@
-		${OpenCV_LIBS}) # The standard libs BEFORE (OpenCV_LIBS) since these can have "debug","optimized".
+		${OpenCV_LIBS}
+        opencv_zlib
+        opencv_lapack) # The standard libs BEFORE (OpenCV_LIBS) since these can have "debug","optimized".
 ENDIF(NOT @OPENCV_BUILD_SHARED_LIB@)
 
 
diff --git a/OpenCVFindOpenEXR.cmake b/OpenCVFindOpenEXR.cmake
index 85016ae9f01fc8b24e0617495d4dfcbb7226eb0d..9e08aa174b919cb7d7ed8204e1b0b4a1609425d1 100644
--- a/OpenCVFindOpenEXR.cmake
+++ b/OpenCVFindOpenEXR.cmake
@@ -44,7 +44,7 @@ FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY
 IF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY)
     SET(OPENEXR_FOUND TRUE)
     SET(OPENEXR_INCLUDE_PATHS ${OPENEXR_INCLUDE_PATH} CACHE STRING "The include paths needed to use OpenEXR")
-    SET(OPENEXR_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} zlib CACHE STRING "The libraries needed to use OpenEXR")
+    SET(OPENEXR_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} opencv_zlib CACHE STRING "The libraries needed to use OpenEXR")
 ENDIF ()
 
 IF(OPENEXR_FOUND)
diff --git a/modules/core/CMakeLists.txt b/modules/core/CMakeLists.txt
index b50a40745cd95f08fdd1675157587c6cb8d527d7..35c4701448635e09cbe5f091a29b0f8d28838240 100644
--- a/modules/core/CMakeLists.txt
+++ b/modules/core/CMakeLists.txt
@@ -1,3 +1,3 @@
 include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/include")
-set(deps opencv_lapack zlib)
+set(deps opencv_lapack opencv_zlib)
 define_opencv_module(core ${deps})
diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt
index 287f50661a92521af01f2989b5466f46b5f428a7..c4b1720da0274ca6af2333660938f8c2aee60062 100644
--- a/modules/highgui/CMakeLists.txt
+++ b/modules/highgui/CMakeLists.txt
@@ -277,8 +277,8 @@ if(WITH_JPEG AND NOT JPEG_FOUND)
 endif()
 
 if(WITH_PNG AND NOT PNG_FOUND)
-	add_dependencies(${the_target} libpng zlib)
-	target_link_libraries(${the_target} libpng zlib)
+	add_dependencies(${the_target} libpng opencv_zlib)
+	target_link_libraries(${the_target} libpng opencv_zlib)
 endif()
 
 if(WITH_TIFF AND NOT TIFF_FOUND)
@@ -287,8 +287,8 @@ if(WITH_TIFF AND NOT TIFF_FOUND)
 endif()
 
 #if(OPENCV_BUILD_3RDPARTY_LIBS)
-#	add_dependencies(${the_target} libjasper libjpeg libpng libtiff zlib)
-#	target_link_libraries(${the_target} libjasper libjpeg libpng libtiff zlib)
+#	add_dependencies(${the_target} libjasper libjpeg libpng libtiff opencv_zlib)
+#	target_link_libraries(${the_target} libjasper libjpeg libpng libtiff opencv_zlib)
 #endif()
 if(WIN32)
 	target_link_libraries(${the_target} comctl32 gdi32 ole32)