diff --git a/smartqueue.module b/smartqueue.module
index 8645d45..5920420 100644
--- a/smartqueue.module
+++ b/smartqueue.module
@@ -284,8 +284,16 @@ function smartqueue_taxonomy($op, $type, $array = NULL) {
  * Implementation of hook_nodequeue_autocomplete().
  */
 function smartqueue_taxonomy_nodequeue_autocomplete($queue, $subqueue, $string, $where, $where_args) {
+  global $conf;
   $matches = array();
+  $nodequeue_autocomplete_limit = variable_get('nodequeue_autocomplete_limit', 10);
+  $default_nodes_main = variable_get('default_nodes_main', 10);
+
+  // We need to temporarily override the 'default_nodes_main' variable because
+  // it's hardcoded into taxonomy_select_nodes().
+  $conf['default_nodes_main'] = $nodequeue_autocomplete_limit;
   $result = taxonomy_select_nodes(array($subqueue->reference), 'or', 'all', TRUE);
+  $conf['default_nodes_main'] = $default_nodes_main;
 
   $nids = array();
   while ($node = db_fetch_object($result)) {
@@ -298,7 +306,7 @@ function smartqueue_taxonomy_nodequeue_autocomplete($queue, $subqueue, $string,
       i18n_selection_mode('off');
     }
 
-    $result = db_query_range(db_rewrite_sql("SELECT n.nid, n.title, n.tnid FROM {node} n WHERE n.nid IN (" . implode(',', $nids) . ") AND " . $where), $where_args, 0, variable_get('nodequeue_autocomplete_limit', 10));
+    $result = db_query_range(db_rewrite_sql("SELECT n.nid, n.title, n.tnid FROM {node} n WHERE n.nid IN (" . implode(',', $nids) . ") AND " . $where), $where_args, 0, $nodequeue_autocomplete_limit);
 
     if (module_exists('i18n')) {
       i18n_selection_mode('reset');
