diff --git a/includes/common.inc b/includes/common.inc
index f4104aaed6dd9204468ee42d295c573b2e40fc48..7e5715dee112296055e16861a4ec66f303d0800f 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -314,18 +314,18 @@ function drupal_goto($url) {
   ** is compiled with "--enable-trans-sid".
   */
 
-  if (ini_get("session.use_trans_sid")) {
-    $sid = session_name() . "=" . session_id();
-  }
-
-  if (!session_id() || strstr($url, $sid)) {
+  if (!ini_get("session.use_trans_sid") || !session_id() || strstr($url, $sid)) {
     header("Location: $url");
   }
-  else if (strstr($url, "?") && !strstr($url, $sid)) {
-    header("Location: $url&". $sid);
-  }
   else {
-    header("Location: $url?". $sid);
+    $sid = session_name() . "=" . session_id();
+
+    if (strstr($url, "?") && !strstr($url, $sid)) {
+      header("Location: $url&". $sid);
+    }
+    else {
+      header("Location: $url?". $sid);
+    }
   }
 
   /*