diff --git a/drupalorg_project/drupalorg_project.module b/drupalorg_project/drupalorg_project.module
index 724feae..e936e75 100644
--- a/drupalorg_project/drupalorg_project.module
+++ b/drupalorg_project/drupalorg_project.module
@@ -741,21 +741,23 @@ function drupalorg_project_list_branches_core() {
  * SQL randomizer for issues.
  */
 function drupalorg_project_bingo_jump($type = NULL) {
-  $sql = array(
+  $sql_where = array(
     // Bug, core.
-    'bug-core' => "SELECT nid FROM {project_issues} WHERE sid IN (1) AND category = 'bug' AND pid = %d ORDER BY RAND() LIMIT 1",
+    'bug-core' => "pi.sid IN (1) AND pi.category = 'bug' AND pi.pid = %d",
     // Bug, contrib.
-    'bug-contrib' => "SELECT nid FROM {project_issues} WHERE sid IN (1) AND category = 'bug' AND pid != %d ORDER BY RAND() LIMIT 1",
+    'bug-contrib' => "pi.sid IN (1) AND pi.category = 'bug' AND pi.pid != %d",
     // Patch, core.
-    'patch-core' => "SELECT nid FROM {project_issues} WHERE sid IN (8,13,14) AND pid = %d ORDER BY RAND() LIMIT 1",
+    'patch-core' => "pi.sid IN (8,13,14) AND pi.pid = %d",
     // Patch, contrib.
-    'patch-contrib' => "SELECT nid FROM {project_issues} WHERE sid IN (8,13,14) AND pid != %d ORDER BY RAND() LIMIT 1",
+    'patch-contrib' => "pi.sid IN (8,13,14) AND pi.pid != %d",
   );
   if (!isset($type) || !isset($sql[$type])) {
     $type = 'bug-core';
   }
 
-  $nid = db_result(db_query($sql[$type], DRUPALORG_CORE_NID));
+  $sql = "SELECT n.nid FROM {node} n INNER JOIN {project_issues} pi ON n.nid = pi.nid WHERE n.status = 1 AND " . $sql_where[$type] . " ORDER BY RAND() LIMIT 1";
+
+  $nid = db_result(db_query($sql, DRUPALORG_CORE_NID));
   if ($_GET['stop'] != 1) {
     drupal_goto('node/'. $nid);
   }
