Index: includes/session.inc
===================================================================
--- includes/session.inc	(revision 1613)
+++ includes/session.inc	(revision 1614)
@@ -97,6 +97,14 @@
         ->fetchObject();
       }
     }
+// RJL PATCH: allows switching from http to https without forcing user to re-login.
+    if (!$user) {
+      // look for a session for this user that was formerly insecure. Get prior sid from the cookie.
+      if (isset($_COOKIE[$insecure_session_name])) {
+        $user = db_query("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = :sid", array(':sid' => $_COOKIE[$insecure_session_name]))->fetchObject();
+      }
+    }
+// END PATCH
   }
   else {
     $user = db_query("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = :sid", array(':sid' => $sid))->fetchObject();
