diff --git a/includes/nodequeue.admin.inc b/includes/nodequeue.admin.inc
index d65f898..d06de94 100644
--- a/includes/nodequeue.admin.inc
+++ b/includes/nodequeue.admin.inc
@@ -718,7 +718,7 @@ function _nodequeue_dragdrop_get_nodes($queue, $subqueue) {
 
   $visible = nodequeue_nids_visible($subqueue->sqid);
 
-  // get a list of all nodes in the subqueue, regardless of access restrictions
+  // Get a list of all nodes in the subqueue, regardless of access restrictions.
   $query = db_select('node', 'n')
     ->distinct();
 
@@ -730,11 +730,12 @@ function _nodequeue_dragdrop_get_nodes($queue, $subqueue) {
     ->condition('nq.sqid', $subqueue->sqid)
     ->orderBy('nq.position', $order);
   $result = $query->execute();
-  //$result = db_query('SELECT DISTINCT(n.nid), n.title, n.uid, u.name, n.created, nq.position FROM {node} n LEFT JOIN {users} u on n.uid = u.uid LEFT JOIN {nodequeue_nodes} nq ON nq.nid = n.nid WHERE nq.sqid = :sqid ORDER BY nq.position ' . $order, array(':sqid' => $subqueue->sqid));
 
   $nodes = array();
-  foreach ($result as $node) {
-    $node->visible = isset($visible[$node->nid]) ? TRUE : FALSE;
+  foreach ($result as $sq_node) {
+    $node = node_load($sq_node->nid);
+    $node->visible = isset($visible[$sq_node->nid]) ? TRUE : FALSE;
+    $node->position = $sq_node->position;
     $nodes[] = $node;
   }
 
@@ -770,7 +771,9 @@ function nodequeue_arrange_subqueue_form($form, $form_state, $queue, $nodes, $su
       $form['nodes'][$node->nid]['date'] = array('#value' => '');
     }
 
-    $form['nodes'][$node->nid]['edit'] = array('#markup' => l(t('edit'), 'node/' . $node->nid . '/edit', array('attributes' => array('title' => t('Edit this node')))));
+    if (node_access('update', $node)) {
+      $form['nodes'][$node->nid]['edit'] = array('#markup' => l(t('edit'), 'node/' . $node->nid . '/edit', array('attributes' => array('title' => t('Edit this node')))));
+    }
     $form['nodes'][$node->nid]['position'] = array(
       '#type' => 'position',
       '#delta' => $count,
diff --git a/nodequeue.module b/nodequeue.module
index b89f38a..c9fcae8 100644
--- a/nodequeue.module
+++ b/nodequeue.module
@@ -2127,7 +2127,7 @@ function theme_nodequeue_arrange_subqueue_form_table($variables) {
       $row[] = drupal_render($form[$key]['author']);
       $row[] = drupal_render($form[$key]['date']);
       $row[] = drupal_render($form[$key]['position']);
-      $row[] = drupal_render($form[$key]['edit']);
+      $row[] = (!empty($form[$key]['edit'])) ? drupal_render($form[$key]['edit']) : '&nbsp;';
       $row[] = drupal_render($form[$key]['remove']);
       $row[] = array(
         'data' => $counter,
