diff --git a/includes/nodequeue.admin.inc b/includes/nodequeue.admin.inc
index ccb68df..cdfa5f3 100644
--- a/includes/nodequeue.admin.inc
+++ b/includes/nodequeue.admin.inc
@@ -868,7 +868,7 @@ function nodequeue_arrange_subqueue_form($form, $form_state, $queue, $nodes, $su
  */
 function nodequeue_arrange_subqueue_form_validate($form, &$form_state) {
   $positions = array();
-  foreach ($form_state['values'] as $nid => $element) {
+  foreach ($form_state['values']['nodes'] as $nid => $element) {
     if (is_numeric($nid) && is_numeric($element['position'])) {
       $positions[$nid] = $element['position'];
     }
@@ -877,7 +877,7 @@ function nodequeue_arrange_subqueue_form_validate($form, &$form_state) {
     $seen = array();
     foreach ($positions as $nid => $position) {
       if (isset($seen[$position])) {
-        form_set_error($nid . '][position', t('Duplicate position value.'));
+        form_set_error('nodes][' . $nid . '][position', t('Duplicate position value.'));
       }
       $seen[$position] = TRUE;
     }
