diff --git a/includes/nodequeue.admin.inc b/includes/nodequeue.admin.inc
index 287c849..d5c661e 100644
--- a/includes/nodequeue.admin.inc
+++ b/includes/nodequeue.admin.inc
@@ -41,9 +41,87 @@ function nodequeue_admin_settings($form, &$form_state) {
     '#description' => t("A contextual link to edit the nodequeue will be displayed on Views that have a nodequeue relationship."),
     '#default_value' => variable_get('nodequeue_show_contextual_links', TRUE),
   );
+
+  // Add the nodequeue image settings fieldset to the form.
+  if (module_exists('image')) {
+    $form['nodequeue_image'] = nodequeue_image_settings_field();
+  }
+
   return system_settings_form($form);
 }
 
+/**
+ * Create the nodequeue image settings fieldset.
+ *
+ * @return (array)
+ *   A renderable array for the image info fieldset.
+ */
+function nodequeue_image_settings_field() {
+  $nodequeue_image_settings = variable_get('nodequeue_image');
+
+  $nodequeue_image_settings_field = array(
+    '#type' => 'fieldset',
+    '#title' => t('Nodequeue image settings'),
+    '#collapsible' => TRUE,
+    '#tree' => TRUE,
+  );
+
+  // Set defaults if these settings aren't set.
+  $show_image = 0;
+  $image_field = '';
+  $image_style = '';
+
+  if (isset($nodequeue_image_settings)) {
+    $show_image = $nodequeue_image_settings['show_image'] ? $nodequeue_image_settings['show_image'] : $show_image;
+    $image_field = $nodequeue_image_settings['image_field'] ? $nodequeue_image_settings['image_field'] : $image_field;
+    $image_style = $nodequeue_image_settings['image_style'] ? $nodequeue_image_settings['image_style'] : $image_style;
+  }
+
+  $nodequeue_image_settings_field['show_image'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Display node image'),
+    '#description' => t("If enabled, this will display an image for a node in the nodequeue administration drag and drop utility. It will use the first image in the specified image field for that node."),
+    '#default_value' => $show_image,
+  );
+
+  $field_options = array();
+  $all_image_fields = array();
+  foreach (field_info_fields() as $name => $info) {
+    if ($info['type'] == 'image') {
+      $field_options[$info['field_name']] = $info['field_name'];
+    }
+  }
+
+  $nodequeue_image_settings_field['image_field'] = array(
+    '#type' => 'select',
+    '#options' => $field_options,
+    '#title' => t('Field for display'),
+    '#default_value' => $image_field,
+  );
+
+  // Call the image module's image_styles function to get all of the defined
+  // image style presets.
+  $temp_image_styles = image_styles();
+  $image_styles = array();
+
+  // Iterate over the temp array to clear out the data we don't want.
+  // Store just the image style keys and values in the $image_styles array so
+  // that we have a properly formatted options array for the image_style select
+  // element.
+  foreach ($temp_image_styles as $style_name => $style) {
+    $image_styles[$style_name] = $style['name'];
+  }
+
+  $nodequeue_image_settings_field['image_style'] = array(
+    '#type' => 'select',
+    '#options' => $image_styles,
+    '#title' => t('Image style for node image'),
+    '#default_value' => $image_style,
+  );
+
+  return $nodequeue_image_settings_field;
+}
+
 /**
  * Page callback to add a node to a queue.
  */
@@ -858,11 +936,13 @@ function nodequeue_arrange_subqueue_form($form, $form_state, $queue, $nodes, $su
     $form['nodes'][$key]['#node'] = (array) $node;
     if ($node->visible) {
       $form['nodes'][$key]['#node'] = (array) $node;
+      $form['nodes'][$key]['image'] = nodequeue_get_node_image($node);
       $form['nodes'][$key]['title'] = array('#markup' => l($node->title, 'node/' . $node->nid));
       $form['nodes'][$key]['author'] = array('#markup' => theme('username', array('account' => $node)));
       $form['nodes'][$key]['date'] = array('#markup' => format_date($node->created, 'short'));
     }
     else {
+      $form['nodes'][$key]['image'] = array('#value' => '');
       $form['nodes'][$key]['title'] = array('#markup' => t('Restricted node, NID: @nid', array('@nid' => $node->nid)));
       $form['nodes'][$key]['author'] = array('#markup' => '');
       $form['nodes'][$key]['date'] = array('#markup' => '');
@@ -958,6 +1038,40 @@ function nodequeue_arrange_subqueue_form($form, $form_state, $queue, $nodes, $su
   return $form;
 }
 
+/**
+ * Retrieves an image to display for a node in the nodequeue admin utility.
+ *
+ * @param $node
+ *    The node for which to retrieve an image field value.
+ * @return A renderable array for an image field value, or an empty string if
+ *    no suitable image field value is found.
+ */
+function nodequeue_get_node_image($node) {
+  if (module_exists('image')) {
+    $nodequeue_image_settings = variable_get('nodequeue_image');
+    $show_image = $nodequeue_image_settings['show_image'];
+    $image_field = $nodequeue_image_settings['image_field'];
+    $image_style = $nodequeue_image_settings['image_style'];
+
+    // If we're not showing images on the nodequeue form, go no further.
+    if (empty($show_image)) {
+      return '';
+    }
+
+    $images = field_get_items('node', $node, $image_field);
+    if (isset($images[0])) {
+      return field_view_value('node', $node, $image_field, $images[0], array(
+        'type' => 'image',
+        'settings' => array('image_style' => $image_style),
+        )
+      );
+    }
+  }
+
+  // If we got here, this node has no image, so return an empty string.
+  return '';
+}
+
 /**
  * Validate handler for nodequeue_arrange_subqueue_form.
  */
diff --git a/nodequeue.install b/nodequeue.install
index 49d636f..862a3a7 100644
--- a/nodequeue.install
+++ b/nodequeue.install
@@ -252,6 +252,7 @@ function nodequeue_uninstall() {
     'nodequeue_tab_name',
     'nodequeue_autocomplete_limit',
     'nodequeue_view_per_queue',
+    'nodequeue_image',
   );
   foreach ($variables as $variable) {
     variable_del($variable);
diff --git a/nodequeue.theme.inc b/nodequeue.theme.inc
index f28b5f4..bdd1c79 100644
--- a/nodequeue.theme.inc
+++ b/nodequeue.theme.inc
@@ -43,10 +43,15 @@ function theme_nodequeue_arrange_subqueue_form_table($variables) {
   // Render form as table rows.
   $rows = array();
   $counter = 1;
+  $nodequeue_image_settings = variable_get('nodequeue_image');
+  $show_image = $nodequeue_image_settings['show_image'];
   foreach (element_children($form) as $key) {
     if (isset($form[$key]['title'])) {
       $row = array();
 
+      if (!empty($show_image)) {
+        $row[] = drupal_render($form[$key]['image']);
+      }
       $row[] = drupal_render($form[$key]['title']);
       $row[] = drupal_render($form[$key]['author']);
       $row[] = drupal_render($form[$key]['date']);
@@ -75,6 +80,10 @@ function theme_nodequeue_arrange_subqueue_form_table($variables) {
   // Render the main nodequeue table.
   $header = array(t('Title'), t('Author'), t('Post Date'), t('Position'), array('data' => t('Operations'), 'colspan' => 2), t('Position'));
 
+  if (!empty($show_image)) {
+    $header = array_merge(array(t('Image')), $header);
+  }
+
   // Allow other modules to alter the table setup before output.
   drupal_alter('nodequeue_arrange_subqueue_form', $form, $header, $rows);
 
