diff --git a/django/contrib/sessions/models.py b/django/contrib/sessions/models.py
index 29adc6e30c..fda10c9743 100644
--- a/django/contrib/sessions/models.py
+++ b/django/contrib/sessions/models.py
@@ -15,8 +15,13 @@ class SessionManager(models.Manager):
         "Returns session key that isn't being used."
         # The random module is seeded when this Apache child is created.
         # Use SECRET_KEY as added salt.
+        try:
+            pid = os.getpid()
+        except AttributeError:
+            # No getpid() in Jython, for example
+            pid = 1
         while 1:
-            session_key = md5.new("%s%s%s%s" % (random.randint(0, sys.maxint - 1), os.getpid(), time.time(), settings.SECRET_KEY)).hexdigest()
+            session_key = md5.new("%s%s%s%s" % (random.randint(0, sys.maxint - 1), pid, time.time(), settings.SECRET_KEY)).hexdigest()
             try:
                 self.get(session_key=session_key)
             except self.model.DoesNotExist:
diff --git a/django/core/mail.py b/django/core/mail.py
index ff653400f9..b90752e649 100644
--- a/django/core/mail.py
+++ b/django/core/mail.py
@@ -50,7 +50,11 @@ def make_msgid(idstring=None):
     """
     timeval = time.time()
     utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval))
-    pid = os.getpid()
+    try:
+        pid = os.getpid()
+    except AttributeError:
+        # Not getpid() in Jython, for example.
+        pid = 1
     randint = random.randrange(100000)
     if idstring is None:
         idstring = ''