diff --git a/term_reference_tree.widget.inc b/term_reference_tree.widget.inc
index 8bae7a1..252f5a5 100644
--- a/term_reference_tree.widget.inc
+++ b/term_reference_tree.widget.inc
@@ -205,9 +205,10 @@ function _term_reference_tree_output_list_level(&$element, &$tree) {
     $tokens_selected = $settings['token_display_selected'];
     $tokens_unselected = ($settings['token_display_unselected'] != '') ? $settings['token_display_unselected'] : $tokens_selected;
 
+    $taxonomy_term_info = entity_get_info('taxonomy_term');
     foreach($tree['children'] as &$item) {
-      $term = taxonomy_term_load($item['tid']);
-      $uri = taxonomy_term_uri($term);
+      $term = $taxonomy_term_info['load hook']($item['tid']);
+      $uri = $taxonomy_term_info['uri callback']($term);
       $class = $item['selected'] ? 'selected' : 'unselected';
       $output .= "<li class='$class'>";
       if ($tokens_selected != '' && module_exists('token')) {
