diff --git a/path_breadcrumbs_ui/css/path_breadcrumbs_ui.css b/path_breadcrumbs_ui/css/path_breadcrumbs_ui.css
index dad990c..bf082e7 100644
--- a/path_breadcrumbs_ui/css/path_breadcrumbs_ui.css
+++ b/path_breadcrumbs_ui/css/path_breadcrumbs_ui.css
@@ -87,6 +87,10 @@
   color: #AAAAAA;
 }
 
+#breadcrumbs-table .path-weight {
+  width: 30px;
+}
+
 /**
  * Autocomplete styles.
  */
diff --git a/path_breadcrumbs_ui/js/path_breadcrumbs_ui.js b/path_breadcrumbs_ui/js/path_breadcrumbs_ui.js
index 8f827c7..341226f 100644
--- a/path_breadcrumbs_ui/js/path_breadcrumbs_ui.js
+++ b/path_breadcrumbs_ui/js/path_breadcrumbs_ui.js
@@ -6,7 +6,7 @@ Drupal.pathBreadcrumbsUI = Drupal.pathBreadcrumbsUI || {};
   Drupal.behaviors.pathBreadcrumbsUI = {
     attach: function(context) {
 
-      $('.breadcrumb-tokens .form-text', context).once(function() {
+      $('.breadcrumb-tokens .form-text:not(.path-weight)', context).once(function() {
         new Drupal.pathBreadcrumbsUI.autocomplete(this);
       });
 
diff --git a/path_breadcrumbs_ui/path_breadcrumbs_ui.module b/path_breadcrumbs_ui/path_breadcrumbs_ui.module
index 77ab82a..fc27aab 100644
--- a/path_breadcrumbs_ui/path_breadcrumbs_ui.module
+++ b/path_breadcrumbs_ui/path_breadcrumbs_ui.module
@@ -694,6 +694,11 @@ function _path_breadcrumbs_ui_form_step_breadcrumbs_settings(&$form, &$form_stat
       '#default_value' => isset($breadcrumb->paths[$i]) ? $breadcrumb->paths[$i] : '',
     );
 
+    $form['breadcrumbs_table'][$unique_hash]['weight'] = array(
+      '#type'          => 'textfield',
+      '#default_value' => $i,
+    );
+
     $form['breadcrumbs_table'][$unique_hash]['delete'] = array(
       '#name'  => 'delete_' . $unique_hash,
       '#type'  => 'submit',
@@ -828,6 +833,14 @@ function _path_breadcrumbs_ui_form_step_breadcrumbs_settings_submit($form, &$for
     $form_state['rebuild'] = TRUE;
   }
 
+  // Sort breadcrumb items based on weights changed by tabledrag.
+  usort($values['breadcrumbs_table'], function($a, $b) {
+    if ($a['weight'] == $b['weight']) {
+      return 0;
+    }
+    return $a['weight'] < $b['weight'] ? 1 : -1;
+  });
+
   // Rebuild breadcrumb titles and paths.
   $titles = array();
   $paths  = array();
diff --git a/path_breadcrumbs_ui/path_breadcrumbs_ui.theme.inc b/path_breadcrumbs_ui/path_breadcrumbs_ui.theme.inc
index 17e4379..be723e8 100644
--- a/path_breadcrumbs_ui/path_breadcrumbs_ui.theme.inc
+++ b/path_breadcrumbs_ui/path_breadcrumbs_ui.theme.inc
@@ -33,25 +33,31 @@ function _path_breadcrumbs_render_table($vars) {
       $row = array();
       $input = $form['breadcrumbs_table'][$value];
       if (isset($input['left_value']) && isset($input['right_value']) && isset($input['delete'])) {
-        $row[] = render($input['left_value']);
-        $row[] = render($input['right_value']);
-        $row[] = render($input['delete']);
-        $rows[] = $row;
+        $input['weight']['#attributes']['class'][] = 'path-weight';
+        $row[] = array('data' => $input['left_value']);
+        $row[] = array('data' => $input['right_value']);
+        $row[] = array('data' => $input['weight']);
+        $row[] = array('data' => $input['delete']);
+        $rows[] = array(
+          'data' => $row,
+          'class' => array('draggable'),
+        );
       }
     }
 
     unset($form['breadcrumbs_table']);
 
     $rows[] = array(
-      'data' => array(array('data' => render($form['more']), 'colspan' => 3))
+      'data' => array(array('data' => render($form['more']), 'colspan' => 4))
     );
 
-    $headers = array(t('Link title'), t('Link path'), t('Delete link'));
+    $headers = array(t('Link title'), t('Link path'), t('Weight'), t('Delete link'));
     $output = theme('table', array(
       'header' => $headers,
       'rows' => $rows,
       'attributes' => array(
-        'class' => array('breadcrumb-tokens')
+        'class' => array('breadcrumb-tokens'),
+        'id' => 'breadcrumbs-table',
       ),
     ));
 
@@ -59,6 +65,8 @@ function _path_breadcrumbs_render_table($vars) {
     $context_placeholders = render($form['contexts']);
     $buttons = render($form['actions']);
 
+    drupal_add_tabledrag('breadcrumbs-table', 'order', 'sibling', 'path-weight');
+
     return drupal_render_children($form) . $output . $context_placeholders . $buttons;
   }
 }
