diff --git a/cmake_support/CopyDependencies.cmake b/cmake_support/CopyDependencies.cmake
index 31f8081e58784bc6442e3d201b275b87e51ab0e7..ce140114cd105d472c23a650f807031e5b3e3f7f 100644
--- a/cmake_support/CopyDependencies.cmake
+++ b/cmake_support/CopyDependencies.cmake
@@ -283,30 +283,6 @@ endfunction(resolve_embedded_item)
 
 
 
-#=============================================================================
-# function copy_resolved_item
-#=============================================================================
-function(copy_resolved_item resolved_item resolved_embedded_item)
-  if(WIN32)
-    # ignore case on Windows
-    string(TOLOWER "${resolved_item}" resolved_item_compare)
-    string(TOLOWER "${resolved_embedded_item}" resolved_embedded_item_compare)
-  else()
-    set(resolved_item_compare "${resolved_item}")
-    set(resolved_embedded_item_compare "${resolved_embedded_item}")
-  endif()
-
-  if("${resolved_item_compare}" STREQUAL "${resolved_embedded_item_compare}")
-    message(STATUS "warning: resolved_item == resolved_embedded_item - not copying...")
-  else()
-    message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy ${resolved_item} ${resolved_embedded_item}")
-    execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" "${resolved_embedded_item}")
-    if(UNIX AND NOT APPLE)
-      file(RPATH_REMOVE FILE "${resolved_embedded_item}")
-    endif(UNIX AND NOT APPLE)
-  endif()
-
-endfunction(copy_resolved_item)
 
 
 #=============================================================================
@@ -654,6 +630,19 @@ function(is_system_lib item system_var)
   endif()
 endfunction(is_system_lib)
 
+#=============================================================================
+# function copy_resolved_item (OSX)
+#=============================================================================
+function(copy_resolved_item resolved_item resolved_embedded_item)
+  if("${resolved_item}" STREQUAL "${resolved_embedded_item}")
+    message(STATUS "warning: resolved_item == resolved_embedded_item - not copying...")
+  else()
+    message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy ${resolved_item} ${resolved_embedded_item}")
+    execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" "${resolved_embedded_item}")
+  endif()
+
+endfunction(copy_resolved_item)
+
 
 elseif(WIN32 AND NOT UNIX)
 
@@ -708,8 +697,6 @@ function(get_rpath target rpath_var)
   message(FATAL_ERROR "get_rpath not implemented for Windows.")
 endfunction(get_rpath)
 
-elseif(UNIX)
-
 #=============================================================================
 # function is_system_lib (Windows)
 #=============================================================================
@@ -726,6 +713,26 @@ function(is_system_lib item system_var)
   endif()
 endfunction(is_system_lib)
 
+#=============================================================================
+# function copy_resolved_item (Windows)
+#=============================================================================
+function(copy_resolved_item resolved_item resolved_embedded_item)
+  # ignore case on Windows
+  string(TOLOWER "${resolved_item}" resolved_item_compare)
+  string(TOLOWER "${resolved_embedded_item}" resolved_embedded_item_compare)
+
+  if("${resolved_item_compare}" STREQUAL "${resolved_embedded_item_compare}")
+    message(STATUS "warning: resolved_item == resolved_embedded_item - not copying...")
+  else()
+    message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy ${resolved_item} ${resolved_embedded_item}")
+    execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" "${resolved_embedded_item}")
+  endif()
+
+endfunction(copy_resolved_item)
+
+elseif(UNIX)
+
+
 #=============================================================================
 #=============================================================================
 # Linux specific functions
@@ -746,8 +753,10 @@ function(get_dependencies_for_item item list_var)
     message(FATAL_ERROR "Could not find ldd - cannot analyze dependencies.")
     return()
   endif(NOT ldd_cmd)
-
+  set(old_ld_library_path $ENV{LD_LIBRARY_PATH})
+  set(ENV{LD_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX}/${LIB_DIR})
   execute_process( COMMAND ${ldd_cmd}  ${item} OUTPUT_VARIABLE ldd_cmd_ov ERROR_VARIABLE ldd_cmd_ev RESULT_VARIABLE retcode)
+  set(ENV{LD_LIBRARY_PATH} ${old_ld_library_path})
   if(retcode)
     if(${ldd_cmd_ov})
       message(${ldd_cmd_ov})
@@ -833,6 +842,36 @@ else(APPLE)
 endif(APPLE)
 
 
+#=============================================================================
+# function copy_resolved_item (Linux)
+#=============================================================================
+function(copy_resolved_item resolved_item resolved_embedded_item)
+  get_filename_component(real_resolved_item "${resolved_item}" REALPATH)
+  get_filename_component(real_resolved_embedded_item "${resolved_embedded_item}" REALPATH)
+
+  if("${real_resolved_item}" STREQUAL "${real_resolved_embedded_item}")
+    message(STATUS "warning: resolved_item == resolved_embedded_item - not copying...")
+  else()
+    message(STATUS "copying ${resolved_item} to ${resolved_embedded_item} including symlinks")
+    # determine all the symlinks pointing to the current item and copy them into the package
+    # along with the item
+    get_filename_component(external_path  ${real_resolved_item} PATH)
+    get_filename_component(embedded_path  ${real_resolved_embedded_item} PATH)
+    get_filename_component(external_name  ${real_resolved_item} NAME)
+    string(REGEX REPLACE "([a-zA-Z]+).*" "\\1" name_base ${external_name})
+    file(GLOB candidates "${external_path}/${name_base}*" )
+    set(external_files)
+    foreach(candidate ${candidates})
+      get_filename_component(real_candidate "${candidate}" REALPATH)
+      if(real_candidate STREQUAL ${real_resolved_item})
+        list(APPEND external_files ${candidate})
+      endif(real_candidate STREQUAL ${real_resolved_item})
+    endforeach(candidate)
+    file(COPY ${external_files} DESTINATION ${embedded_path})
+    file(RPATH_REMOVE FILE "${resolved_embedded_item}")
+  endif()
+
+endfunction(copy_resolved_item)
 
 
 
diff --git a/deployment/linux/CMakeLists.txt b/deployment/linux/CMakeLists.txt
index 90f8805685cfef79271a9d0a38492c5a54c08261..33914711e854eaac49c14a3f44bd934eb4ee8854 100644
--- a/deployment/linux/CMakeLists.txt
+++ b/deployment/linux/CMakeLists.txt
@@ -43,7 +43,6 @@ else()
       list(APPEND  OST_BINARIES \${qt_plugins})
 
       copy_dependencies(\"\${OST_BINARIES}\")
-      message(FATAL_ERROR \"stop\")
     endif(NOT ${CMAKE_INSTALL_PREFIX} MATCHES \${CMAKE_INSTALL_PREFIX})
   ")
   set(CPACK_GENERATOR "TGZ")