diff --git a/path_breadcrumbs_ui/path_breadcrumbs_ui.module b/path_breadcrumbs_ui/path_breadcrumbs_ui.module
index 77ab82a..14f0415 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',
@@ -831,6 +836,17 @@ function _path_breadcrumbs_ui_form_step_breadcrumbs_settings_submit($form, &$for
   // Rebuild breadcrumb titles and paths.
   $titles = array();
   $paths  = array();
+  usort($values['breadcrumbs_table'], function($item1, $item2) {
+    if ($item1['weight'] > $item2['weight']) {
+      return 1;
+    }
+    elseif ($item1['weight'] < $item2['weight']) {
+      return -1;
+    }
+    else {
+      return 0;
+    }
+  } );
   foreach ($values['breadcrumbs_table'] as $value) {
     $titles[] = $value['left_value'];
     $paths[] = $value['right_value'];
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;
   }
 }
