diff --git a/nodequeue.module b/nodequeue.module
index eab7411..8693a30 100644
--- a/nodequeue.module
+++ b/nodequeue.module
@@ -1275,6 +1275,8 @@ function nodequeue_save_subqueue_order($nodes, $qid, $sqid) {
   $clean = array();
   $count = 1;
   ksort($nodes);
+  // Allow other modules to alter the order of nodes.
+  module_invoke_all('nodequeue_sort_alter', $sqid, $nodes);
   foreach ($nodes as $pos => $nid) {
     if (!is_numeric($nid) || $nid < 1) {
       return array(NODEQUEUE_INVALID_NID, 'Invalid nid value. New subqueue order not saved.');
