diff --git a/reviewboard/__init__.py b/reviewboard/__init__.py
index 31597961ae4fa8556e701cbb5e5c7d8e68d924fa..f41e39e39707a16df5c1a898e725689689921899 100644
--- a/reviewboard/__init__.py
+++ b/reviewboard/__init__.py
@@ -61,10 +61,10 @@ def initialize():
 
     import settings_local
 
-    # Set PYTHONPATH to match the directory of settings, for subprocesses.
-    os.environ['PYTHONPATH'] = '%s:%s' % \
-        (os.path.dirname(settings_local.__file__),
-            os.environ.get('PYTHONPATH', ''))
+    # Set RBSITE_PYTHON_PATH to the path we need for any RB-bundled
+    # scripts we may call.
+    os.environ['RBSITE_PYTHONPATH'] = \
+        os.path.dirname(settings_local.__file__)
 
     from django.conf import settings
     from django.db import DatabaseError
diff --git a/reviewboard/cmdline/rbssh.py b/reviewboard/cmdline/rbssh.py
index 6916cea3e45f83a9ae59a035ede891b2ce48a964..b4bf3b4d19f89ed88b4698ef820cd01849925ec8 100755
--- a/reviewboard/cmdline/rbssh.py
+++ b/reviewboard/cmdline/rbssh.py
@@ -36,6 +36,10 @@ import select
 import sys
 from optparse import OptionParser
 
+if 'RBSITE_PYTHONPATH' in os.environ:
+    for path in reversed(os.environ['RBSITE_PYTHONPATH'].split(':')):
+        sys.path.insert(1, path)
+
 import paramiko
 
 from reviewboard import get_version_string
