diff --git a/term_reference_tree.module b/term_reference_tree.module
index 91313ef..75722be 100644
--- a/term_reference_tree.module
+++ b/term_reference_tree.module
@@ -65,7 +65,6 @@ function term_reference_tree_theme() {
   );
 }
 
-
 /**
  * This function returns a taxonomy term hierarchy in a nested array.
  *
@@ -77,8 +76,19 @@ function term_reference_tree_theme() {
  * @return
  *   A nested array of the term's child objects.  
  */
-function _term_reference_tree_get_term_hierarchy($tid, $vid, &$allowed, $filter, $label, $default = array()) {
-  $terms = _term_reference_tree_get_children($tid, $vid, $default);
+function _term_reference_tree_get_term_hierarchy($tid, $vid, &$allowed, $filter, $label, $default = array(), $include_root = FALSE) {
+  if ($include_root && $tid != 0) {
+    $term = (object) db_select('taxonomy_term_data', 'd')
+      ->fields('d', array('tid', 'name'))
+      ->condition('d.tid', $tid, '=')
+      ->condition('d.vid', $vid, '=')
+      ->execute()
+      ->fetchAssoc();
+    $terms = array($tid => $term);
+  }
+  else {
+    $terms = _term_reference_tree_get_children($tid, $vid, $default);
+  }
   
   $result = array();
 
diff --git a/term_reference_tree.widget.inc b/term_reference_tree.widget.inc
index b93162c..1a861f9 100644
--- a/term_reference_tree.widget.inc
+++ b/term_reference_tree.widget.inc
@@ -21,6 +21,7 @@ function term_reference_tree_field_widget_info() {
         'track_list' => 0,
         'token_display' => '',
         'parent_term_id' => '',
+        'parent_term_shown' => 0,
         'max_depth' => '',
       ),
     ),
@@ -144,6 +145,15 @@ function term_reference_tree_field_widget_settings_form($field, $instance) {
       '#size' => 8,
       '#return_value' => 1,
     );    
+
+    $form['parent_term_shown'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Show Parent Term'),
+      '#description' => t(
+          'Include the parent term (of the above Parent Term ID) in the results.'),
+      '#default_value' => $settings['parent_term_shown'],
+      '#return_value' => 1,
+    );
   }
 
   return $form;
@@ -281,7 +291,7 @@ function term_reference_tree_process_checkbox_tree($element, $form_state) {
     $value = !empty($element['#default_value']) ? $element['#default_value'] : array();
 
     if (empty($element['#options'])) {
-      $element['#options_tree'] = _term_reference_tree_get_term_hierarchy($element['#parent_tid'], $element['#vocabulary'], $allowed, $element['#filter_view'], '', $value);
+      $element['#options_tree'] = _term_reference_tree_get_term_hierarchy($element['#parent_tid'], $element['#vocabulary'], $allowed, $element['#filter_view'], '', $value, $element['#include_root']);
       
       $required = $element['#required'];
       if ($element['#max_choices'] == 1 && !$required) {
@@ -517,6 +527,7 @@ function term_reference_tree_field_widget_form(&$form, &$form_state, $field, $in
       $element['#cascading_selection'] = $settings['cascading_selection'];
       $element['#track_list'] = $settings['track_list'];
       $element['#parent_tid'] = $settings['parent_term_id'] || $field['settings']['allowed_values'][0]['parent'];
+      $element['#include_root'] = $settings['parent_term_shown'];
       $element['#vocabulary'] = $voc ? $voc->vid : NULL;
       $element['#token_display'] = module_exists('token') ? $settings['token_display'] : '';
       break;
