Index: nodequeue.module
===================================================================
--- nodequeue.module	(revision 4432)
+++ nodequeue.module	(working copy)
@@ -2176,8 +2176,12 @@
   return nodequeue_nodes($sqid, true, $teaser, $links, 0, 1);
 }
 
+/**
+ * Fetch a random node from a subqueue. Query here must match query used in nodequeue_nodes().
+ * Otherwise the query can fall out of range if the count query picks up more nodes than the returning query.
+ */
 function nodequeue_fetch_random($sqid, $teaser = true, $links = true) {
-  $count = db_result(db_query("SELECT count(*) FROM {nodequeue_nodes} WHERE sqid = %d", $sqid));
+  $count = db_result(db_query(db_rewrite_sql("SELECT count(n.*) FROM {node} n INNER JOIN {nodequeue_nodes} nn ON n.nid = nn.nid WHERE nn.sqid = %d AND n.status = 1"), $sqid));
   return nodequeue_nodes($sqid, false, $teaser, $links, rand(0, $count - 1), 1);
 }
 
