diff --git a/includes/flag.admin.inc b/includes/flag.admin.inc
index 7d1fb12..7d008ef 100644
--- a/includes/flag.admin.inc
+++ b/includes/flag.admin.inc
@@ -31,10 +31,17 @@ function flag_admin_listing(&$form_state, $flags) {
     );
   }
 
-  $form['submit'] = array(
-    '#type' => 'submit',
-    '#value' => t('Save flag order'),
-  );
+  if (count($flags) == 1) {
+    // Don't show weights with only one flag.
+    unset($form['flags'][$flag->name]['weight']);
+  }
+  else if (count($flags) > 1){
+    // Only show the form button if there are several flags.
+    $form['submit'] = array(
+      '#type' => 'submit',
+      '#value' => t('Save flag order'),
+    );
+  }
 
   return $form;
 }
@@ -67,15 +74,17 @@ function theme_flag_admin_listing($form) {
     );
 
     $roles = array_flip(array_intersect(array_flip(user_roles()), $flag->roles['flag']));
-    $row = array(
-      $flag->name,
-      drupal_render($form['flags'][$flag->name]['weight']),
-      $flag->content_type,
-      empty($flag->roles['flag']) ? '<em>' . t('No roles') . '</em>' : implode(', ', $roles),
-      $flag->types ? implode(', ', $flag->types) : '-',
-      $flag->global ? t('Yes') : t('No'),
-      theme('links', $ops),
-    );
+    $row = array();
+    $row[] = $flag->name;
+    if (count($flags) > 1) {
+      $row[] = drupal_render($form['flags'][$flag->name]['weight']);
+    }
+    $row[] = $flag->content_type;
+    $row[] = empty($flag->roles['flag']) ? '<em>' . t('No roles') . '</em>' : implode(', ', $roles);
+    $row[] = $flag->types ? implode(', ', $flag->types) : '-';
+    $row[] = $flag->global ? t('Yes') : t('No');
+    $row[] = theme('links', $ops);
+
     $rows[] = array(
       'data' => $row,
       'class' => 'draggable',
@@ -86,7 +95,7 @@ function theme_flag_admin_listing($form) {
       array('data' => t('No flags are currently defined.'), 'colspan' => 7),
     );
   }
-  else {
+  else if (count($flags) > 1) {
     drupal_add_tabledrag('flag-admin-listing-table', 'order', 'sibling', 'flag-weight');
   }
 
