diff --git a/var/spack/packages/py-pyside/package.py b/var/spack/packages/py-pyside/package.py
index c165d9b3bf2b5fc473dfbf20ce4eb18b0e24be22..6583431124c7800450ea3e080c0c9aaad2d8fa05 100644
--- a/var/spack/packages/py-pyside/package.py
+++ b/var/spack/packages/py-pyside/package.py
@@ -1,5 +1,4 @@
 from spack import *
-import spack.package
 import os
 
 class PyPyside(Package):
@@ -9,25 +8,33 @@ class PyPyside(Package):
 
     version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d')
 
+    # TODO: make build dependency
+    # depends_on("cmake")
+
     extends('python')
     depends_on('py-setuptools')
     depends_on('qt@:4')
 
     def patch(self):
         """Undo PySide RPATH handling and add Spack RPATH."""
+        # Figure out the special RPATH
+        pypkg = self.spec['python'].package
+        rpath = self.rpath
+        rpath.append(os.path.join(self.prefix, pypkg.site_packages_dir, 'PySide'))
+
         # Add Spack's standard CMake args to the sub-builds.
         # They're called BY setup.py so we have to patch it.
         filter_file(
             r'OPTION_CMAKE,',
             r'OPTION_CMAKE, ' + (
                 '"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE", '
-                '"-DCMAKE_INSTALL_RPATH=%s",' % ':'.join(self.rpath)),
+                '"-DCMAKE_INSTALL_RPATH=%s",' % ':'.join(rpath)),
             'setup.py')
 
         # PySide tries to patch ELF files to remove RPATHs
         # Disable this and go with the one we set.
         filter_file(
-            r'rpath_cmd\(pyside_path, srcpath\)',
+            r'^\s*rpath_cmd\(pyside_path, srcpath\)',
             r'#rpath_cmd(pyside_path, srcpath)',
             'pyside_postinstall.py')
 
diff --git a/var/spack/packages/py-shiboken/package.py b/var/spack/packages/py-shiboken/package.py
index e90094793952c5d32cb1acc43a964d21b2f9d0ee..e4bf4ce07e6e9cbdd0671a03dbaae842579fa113 100644
--- a/var/spack/packages/py-shiboken/package.py
+++ b/var/spack/packages/py-shiboken/package.py
@@ -1,4 +1,5 @@
 from spack import *
+import os
 
 class PyShiboken(Package):
     """Shiboken generates bindings for C++ libraries using CPython source code."""
@@ -19,11 +20,15 @@ def patch(self):
         """Undo Shiboken RPATH handling and add Spack RPATH."""
         # Add Spack's standard CMake args to the sub-builds.
         # They're called BY setup.py so we have to patch it.
+        pypkg = self.spec['python'].package
+        rpath = self.rpath
+        rpath.append(os.path.join(self.prefix, pypkg.site_packages_dir, 'Shiboken'))
+
         filter_file(
             r'OPTION_CMAKE,',
             r'OPTION_CMAKE, ' + (
                 '"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE", '
-                '"-DCMAKE_INSTALL_RPATH=%s",' % ':'.join(self.rpath)),
+                '"-DCMAKE_INSTALL_RPATH=%s",' % ':'.join(rpath)),
             'setup.py')
 
         # Shiboken tries to patch ELF files to remove RPATHs