--- ./nodequeue.module 2009-11-04 21:04:43.000000000 -0500 +++ ./nodequeue_597498.module 2009-12-16 13:52:39.000000000 -0500 @@ -1248,6 +1248,18 @@ function nodequeue_save_subqueue_order($ return array(NODEQUEUE_DUPLICATE_POSITION, 'Duplicate position values are not allowed. New subqueue order not saved.'); } + // This fixes http://drupal.org/node/597498. + if ($queue->reverse == 1) { + $reverse_nodes = array(); + $p = array_keys($nodes); + $v = array_values($nodes); + $v = array_reverse($v); + foreach ($v as $key => $value) { + $reverse_nodes[$p[$key]] = $value; + } + $nodes = $reverse_nodes; + } + // clear the queue and save the new positions db_query('DELETE FROM {nodequeue_nodes} WHERE sqid = %d', $sqid); foreach ($nodes as $pos => $nid) {