diff --git a/term_reference_tree.js b/term_reference_tree.js
index 61e5ed9..86621bc 100644
--- a/term_reference_tree.js
+++ b/term_reference_tree.js
@@ -87,11 +87,17 @@ Drupal.behaviors.termReferenceTree = {
           var event_target = $(event.target);
           var control_id = event_target.attr('id');
           if ( event_target.attr('checked') ) {
-            //Control checked - add item to the track list.
-            label_element = event_target.next();
+            // Control checked - add item to the track list.
+            // Check whether input is nested within label element.
+            if (event_target.next().html() === undefined) {
+              label_element = event_target.parent();
+            }
+            else {
+              label_element = event_target.next();
+            }
             addItemToTrackList(
               track_list_container,         //Where to add new item.
-              label_element.html(),         //Text of new item.
+              label_element.text(),         //Text of new item.
               $(label_element).attr('for'), //Id of control new item is for.
               input_type                    //checkbox or radio
             );
