diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index 5684731..5faef88 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -2125,7 +2125,7 @@ function template_preprocess_comment(&$variables) {
   $variables['user_picture'] = theme_get_setting('toggle_comment_user_picture') ? theme('user_picture', array('account' => $comment)) : '';
   $variables['signature'] = $comment->signature;
 
-  $uri = entity_uri('comment', $comment);
+  $uri = $comment->uri();
   $uri['options'] += array('attributes' => array('class' => 'permalink', 'rel' => 'bookmark'));
 
   $variables['title'] = l($comment->subject, $uri['path'], $uri['options']);
diff --git a/core/modules/image/image.field.inc b/core/modules/image/image.field.inc
index 2a32c15..363186d 100644
--- a/core/modules/image/image.field.inc
+++ b/core/modules/image/image.field.inc
@@ -550,7 +550,7 @@ function image_field_formatter_view($entity_type, $entity, $field, $instance, $l
 
   // Check if the formatter involves a link.
   if ($display['settings']['image_link'] == 'content') {
-    $uri = entity_uri($entity_type, $entity);
+    $uri = $entity->uri();
   }
   elseif ($display['settings']['image_link'] == 'file') {
     $link_file = TRUE;
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 671d0f0..c48493c 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1328,7 +1328,7 @@ function template_preprocess_node(&$variables) {
     'link_attributes' => array('rel' => 'author'),
   ));
 
-  $uri = entity_uri('node', $node);
+  $uri = $node->uri();
   $variables['node_url']  = url($uri['path'], $uri['options']);
   $variables['title']     = check_plain($node->title);
   $variables['page']      = $variables['view_mode'] == 'full' && node_is_page($node);
@@ -1559,7 +1559,7 @@ function node_search_execute($keys = NULL, $conditions = NULL) {
 
     $extra = module_invoke_all('node_search_result', $node);
 
-    $uri = entity_uri('node', $node);
+    $uri = $node->uri();
     $results[] = array(
       'link' => url($uri['path'], array_merge($uri['options'], array('absolute' => TRUE))),
       'type' => check_plain(node_type_get_name($node)),
@@ -2543,7 +2543,7 @@ function node_page_view(Node $node) {
   // of the active trail, and the link name becomes the page title.
   // Thus, we must explicitly set the page title to be the node title.
   drupal_set_title($node->title);
-  $uri = entity_uri('node', $node);
+  $uri = $node->uri();
   // Set the node path as the canonical URL to prevent duplicate content.
   drupal_add_html_head_link(array('rel' => 'canonical', 'href' => url($uri['path'], $uri['options'])), TRUE);
   // Set the non-aliased path as a default shortlink.
diff --git a/core/modules/rdf/rdf.module b/core/modules/rdf/rdf.module
index 43ee4ed..f166cff 100644
--- a/core/modules/rdf/rdf.module
+++ b/core/modules/rdf/rdf.module
@@ -588,7 +588,7 @@ function rdf_preprocess_field(&$variables) {
  */
 function rdf_preprocess_user_profile(&$variables) {
   $account = $variables['elements']['#account'];
-  $uri = entity_uri('user', $account);
+  $uri = $account->uri();
 
   // Adds RDFa markup to the user profile page. Fields displayed in this page
   // will automatically describe the user.
@@ -685,7 +685,7 @@ function rdf_preprocess_comment(&$variables) {
     // the URI of the resource described within the HTML element, while the
     // typeof attribute indicates its RDF type (e.g., sioc:Post, foaf:Document,
     // and so on.)
-    $uri = entity_uri('comment', $comment);
+    $uri = $comment->uri();
     $variables['attributes_array']['about'] = url($uri['path'], $uri['options']);
     $variables['attributes_array']['typeof'] = $comment->rdf_mapping['rdftype'];
   }
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index 30eba40..4eb11e2 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -626,7 +626,7 @@ function template_preprocess_taxonomy_term(&$variables) {
   $variables['term'] = $variables['elements']['#term'];
   $term = $variables['term'];
 
-  $uri = entity_uri('taxonomy_term', $term);
+  $uri = $term->uri();
   $variables['term_url']  = url($uri['path'], $uri['options']);
   $variables['term_name'] = check_plain($term->name);
   $variables['page']      = $variables['view_mode'] == 'full' && taxonomy_term_is_page($term);
@@ -1240,7 +1240,7 @@ function taxonomy_field_formatter_view($entity_type, $entity, $field, $instance,
         }
         else {
           $term = $item['taxonomy_term'];
-          $uri = entity_uri('taxonomy_term', $term);
+          $uri = $term->uri();
           $element[$delta] = array(
             '#type' => 'link',
             '#title' => $term->name,
diff --git a/core/modules/taxonomy/taxonomy.tokens.inc b/core/modules/taxonomy/taxonomy.tokens.inc
index 24d7bc8..c7847b3 100644
--- a/core/modules/taxonomy/taxonomy.tokens.inc
+++ b/core/modules/taxonomy/taxonomy.tokens.inc
@@ -110,7 +110,7 @@ function taxonomy_tokens($type, $tokens, array $data = array(), array $options =
           break;
 
         case 'url':
-          $uri = entity_uri('taxonomy_term', $term);
+          $uri = $term->uri();
           $replacements[$original] = url($uri['path'], array_merge($uri['options'], array('absolute' => TRUE)));
           break;
 
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php b/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php
index a8fd35b..2bd922f 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserEntityCallbacksTest.php
@@ -44,7 +44,7 @@ class UserEntityCallbacksTest extends WebTestBase {
    * Test URI callback.
    */
   function testUriCallback() {
-    $uri = entity_uri('user', $this->account);
+    $uri = $this->account->uri();
     $this->assertEqual('user/' . $this->account->uid, $uri['path'], t('Correct user URI.'));
   }
 }
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 01934b4..f4a5d95 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -3598,7 +3598,7 @@ function user_register_submit($form, &$form_state) {
   $account->password = $pass;
 
   // New administrative account without notification.
-  $uri = entity_uri('user', $account);
+  $uri = $account->uri();
   if ($admin && !$notify) {
     drupal_set_message(t('Created a new user account for <a href="@url">%name</a>. No e-mail has been sent.', array('@url' => url($uri['path'], $uri['options']), '%name' => $account->name)));
   }
