diff --git a/core/modules/entity/entity.module b/core/modules/entity/entity.module
index daaa9f6..203707c 100644
--- a/core/modules/entity/entity.module
+++ b/core/modules/entity/entity.module
@@ -412,6 +412,51 @@ function entity_uri($entity_type, $entity) {
 }
 
 /**
+ * Returns the url of an entity.
+ *
+ * @param $entity
+ *   The entity for which to generate a path.
+ * @param $options
+ *   An associative array of additional options to pass to the url() function.
+ *
+ * @return
+ *   The url of the entity, or NULL if url is unavailable.
+ */
+function entity_url(EntityInterface $entity, array $options = array()) {
+  $uri = $entity->uri();
+
+  if (is_array($uri)) {
+    $options += $uri['options'];
+    return url($uri['path'], $options);
+  }
+}
+
+/**
+ * Format the url of an entity as a HTML anchor tag.
+ *
+ * @param $entity
+ *   The entity for which to generate a path.
+ * @param $text
+ *   The link text for the anchor tag. Default to entity label.
+ * @param $options
+ *   An associative array of additional options to pass to the url() function.
+ *
+ * @return
+ *   The url of the entity, or NULL if url is unavailable.
+ */
+function entity_l(EntityInterface $entity, $text = NULL, array $options = array()) {
+  $uri = $entity->uri();
+
+  if (is_array($uri)) {
+    $options += $uri['options'];
+    if (!isset($text)) {
+      $text = $entity->label();
+    }
+    return l($text, $uri['path'], $options);
+  }
+}
+
+/**
  * Returns the label of an entity.
  *
  * See the 'label callback' component of the hook_entity_info() return value
