diff --git a/SuperBuild/Packaging/Files/macx_pkgsetup.in b/SuperBuild/Packaging/Files/macx_pkgsetup.in
index c196337ae9982275d74a76a3d5589fb29e5b67a8..69afe35f82306332af1a6c5aadb317cd332a4da6 100755
--- a/SuperBuild/Packaging/Files/macx_pkgsetup.in
+++ b/SuperBuild/Packaging/Files/macx_pkgsetup.in
@@ -28,9 +28,12 @@ EXE_FILES=$(find "$OUT_DIR/bin"  -type f -exec file {} \; | grep -i "Mach-O*.*ex
 for lib_file in $LIBRARY_FILES $EXE_FILES; do
     #echo "adding rpath to $OUT_DIR/$lib_file"
     if [ -f "$lib_file" ]; then
-	#echo "$INSTALL_NAME_TOOL -add_rpath $OUT_DIR/lib $lib_file"
-	$INSTALL_NAME_TOOL "-add_rpath" "$OUT_DIR/lib" "$lib_file"
-   fi
+      lib_file_original_rpaths=$(otool -l "$lib_file" | grep -A 3 "LC_RPATH" | grep -oE 'path .* \(offset' | cut -d ' ' -f 2)
+      for original_rpath in $lib_file_original_rpaths; do
+        $INSTALL_NAME_TOOL "-delete_rpath" "$original_rpath" "$lib_file"
+      done
+      $INSTALL_NAME_TOOL "-add_rpath" "$OUT_DIR/lib" "$lib_file"
+    fi
 done
 
 
@@ -50,12 +53,15 @@ if [ "$I_AM_XDK" = false ] ; then
     OTB_APP_FILES=$(find "$OUT_DIR/lib/otb/applications" -maxdepth 1 -type f)
     # run install_name_tool
     for app_file in $OTB_APP_FILES; do
-	#echo "adding rpath to $app_file"
-	if [ -f "$app_file" ]; then
-	    $INSTALL_NAME_TOOL "-add_rpath" "$OUT_DIR/lib" "$app_file"
-	fi
+      #echo "adding rpath to $app_file"
+      if [ -f "$app_file" ]; then
+        $INSTALL_NAME_TOOL "-rpath" "@ORIGINAL_RPATH_TO_REPLACE@" "$OUT_DIR/lib" "$app_file"
+      fi
     done
-    
+    if [ -f "$OUT_DIR/lib/python/_otbApplication.so" ]; then
+      $INSTALL_NAME_TOOL "-rpath" "@ORIGINAL_RPATH_TO_REPLACE@" "$OUT_DIR/lib" "$OUT_DIR/lib/python/_otbApplication.so"
+    fi
+
     rm -fr "Mapla.app"
     rm -fr "Monteveridi.app"
     
diff --git a/SuperBuild/Packaging/PackageHelper.cmake b/SuperBuild/Packaging/PackageHelper.cmake
index dd42ddf4b43759c50821f518bf740bbf6c1bd9b5..9ef66b1a70ae87fb3ed71db925f0cb931ef79130 100644
--- a/SuperBuild/Packaging/PackageHelper.cmake
+++ b/SuperBuild/Packaging/PackageHelper.cmake
@@ -184,7 +184,11 @@ macro(macro_super_package)
       file(APPEND ${CMAKE_BINARY_DIR}/make_symlinks
         "${make_symlink_cmd}\n")
     endforeach()
-    
+
+    if(APPLE)
+      set(ORIGINAL_RPATH_TO_REPLACE ${DEPENDENCIES_INSTALL_DIR}/lib)
+    endif()
+
     configure_file(${PACKAGE_SUPPORT_FILES_DIR}/${PKGSETUP_IN_FILENAME}
       ${CMAKE_BINARY_DIR}/pkgsetup @ONLY)
     
diff --git a/SuperBuild/Packaging/PackageMacros.cmake b/SuperBuild/Packaging/PackageMacros.cmake
index 6a5ac835872e7ec892d6a82ed2984deb0b0bf2e3..86a2901206ccced25a6ec1b7a6201edddf37bf40 100755
--- a/SuperBuild/Packaging/PackageMacros.cmake
+++ b/SuperBuild/Packaging/PackageMacros.cmake
@@ -241,6 +241,13 @@ function(is_file_executable2 file_var result_var)
       return()
     endif()
 
+    # detect shared libraries on Mac OSX
+    # where "file" gives "Mach-O 64-bit x86_64 bundle"
+    if("${file_ov}" MATCHES "mach-o.*bundle")
+      set(${result_var} 1 PARENT_SCOPE)
+      return()
+    endif()
+
   endif(APPLE)
 
 endfunction()