diff --git a/core/includes/common.inc b/core/includes/common.inc
index aceaac8..8856091 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -5319,7 +5319,7 @@ function drupal_pre_render_conditional_comments($elements) {
  * @param $elements
  *   A structured array whose keys form the arguments to l():
  *   - #title: The link text to pass as argument to l().
- *   - #href: The URL path component to pass as argument to l().
+ *   - #path: The URL path component to pass as argument to l().
  *   - #options: (optional) An array of options to pass to l().
  *
  * @return
@@ -5355,13 +5355,13 @@ function drupal_pre_render_link($element) {
     }
     // If #ajax['path] was not specified, use the href as Ajax request URL.
     if (!isset($element['#ajax']['path'])) {
-      $element['#ajax']['path'] = $element['#href'];
+      $element['#ajax']['path'] = $element['#path'];
       $element['#ajax']['options'] = $element['#options'];
     }
     $element = ajax_pre_render_element($element);
   }
 
-  $element['#markup'] = l($element['#title'], $element['#href'], $element['#options']);
+  $element['#markup'] = l($element['#title'], $element['#path'], $element['#options']);
   return $element;
 }
 
diff --git a/core/includes/menu.inc b/core/includes/menu.inc
index 8574dbe..82cbbea 100644
--- a/core/includes/menu.inc
+++ b/core/includes/menu.inc
@@ -1033,7 +1033,7 @@ function menu_tree_output($tree) {
     $element['#theme'] = 'menu_link__' . strtr($data['link']['menu_name'], '-', '_');
     $element['#attributes']['class'] = $class;
     $element['#title'] = $data['link']['title'];
-    $element['#href'] = $data['link']['href'];
+    $element['#path'] = $data['link']['href'];
     $element['#localized_options'] = !empty($data['link']['localized_options']) ? $data['link']['localized_options'] : array();
     $element['#below'] = $data['below'] ? menu_tree_output($data['below']) : $data['below'];
     $element['#original_link'] = $data['link'];
@@ -1603,7 +1603,7 @@ function theme_menu_link(array $variables) {
   if ($element['#below']) {
     $sub_menu = drupal_render($element['#below']);
   }
-  $output = l($element['#title'], $element['#href'], $element['#localized_options']);
+  $output = l($element['#title'], $element['#path'], $element['#localized_options']);
   return '<li' . new Attribute($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
 }
 
diff --git a/core/modules/block/block.admin.inc b/core/modules/block/block.admin.inc
index 848298f..f174526 100644
--- a/core/modules/block/block.admin.inc
+++ b/core/modules/block/block.admin.inc
@@ -149,13 +149,13 @@ function block_admin_display_form($form, &$form_state, $blocks, $theme, $block_r
     $form['blocks'][$key]['configure'] = array(
       '#type' => 'link',
       '#title' => t('configure'),
-      '#href' => 'admin/structure/block/manage/' . $block['module'] . '/' . $block['delta'] . '/configure',
+      '#path' => 'admin/structure/block/manage/' . $block['module'] . '/' . $block['delta'] . '/configure',
     );
     if ($block['module'] == 'block') {
       $form['blocks'][$key]['delete'] = array(
         '#type' => 'link',
         '#title' => t('delete'),
-        '#href' => 'admin/structure/block/manage/' . $block['module'] . '/' . $block['delta'] . '/delete',
+        '#path' => 'admin/structure/block/manage/' . $block['module'] . '/' . $block['delta'] . '/delete',
      );
     }
   }
diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index 0626c08..8464164 100644
--- a/core/modules/block/block.module
+++ b/core/modules/block/block.module
@@ -306,7 +306,7 @@ function block_page_build(&$page) {
       $page['page_top']['backlink'] = array(
         '#type' => 'link',
         '#title' => t('Exit block region demonstration'),
-        '#href' => 'admin/structure/block' . (variable_get('theme_default', 'stark') == $theme ? '' : '/list/' . $theme),
+        '#path' => 'admin/structure/block' . (variable_get('theme_default', 'stark') == $theme ? '' : '/list/' . $theme),
         // Add the "overlay-restore" class to indicate this link should restore
         // the context in which the region demonstration page was opened.
         '#options' => array('attributes' => array('class' => array('block-demo-backlink', 'overlay-restore'))),
diff --git a/core/modules/comment/comment.admin.inc b/core/modules/comment/comment.admin.inc
index 6210cc5..d0d8ce3 100644
--- a/core/modules/comment/comment.admin.inc
+++ b/core/modules/comment/comment.admin.inc
@@ -115,7 +115,7 @@ function comment_admin_overview($form, &$form_state, $arg) {
         'data' => array(
           '#type' => 'link',
           '#title' => $comment->subject,
-          '#href' => 'comment/' . $comment->cid,
+          '#path' => 'comment/' . $comment->cid,
           '#options' => array('attributes' => array('title' => truncate_utf8($comment->comment_body[LANGUAGE_NOT_SPECIFIED][0]['value'], 128)), 'fragment' => 'comment-' . $comment->cid),
         ),
       ),
@@ -124,7 +124,7 @@ function comment_admin_overview($form, &$form_state, $arg) {
         'data' => array(
           '#type' => 'link',
           '#title' => $comment->node_title,
-          '#href' => 'node/' . $comment->nid,
+          '#path' => 'node/' . $comment->nid,
         ),
       ),
       'changed' => format_date($comment->changed, 'short'),
@@ -132,7 +132,7 @@ function comment_admin_overview($form, &$form_state, $arg) {
         'data' => array(
           '#type' => 'link',
           '#title' => t('edit'),
-          '#href' => 'comment/' . $comment->cid . '/edit',
+          '#path' => 'comment/' . $comment->cid . '/edit',
           '#options' => array('query' => $destination),
         ),
       ),
diff --git a/core/modules/config/tests/config_test/config_test.module b/core/modules/config/tests/config_test/config_test.module
index 44d4087..b230318 100644
--- a/core/modules/config/tests/config_test/config_test.module
+++ b/core/modules/config/tests/config_test/config_test.module
@@ -186,13 +186,13 @@ function config_test_list_page() {
     $row['name']['data'] = array(
       '#type' => 'link',
       '#title' => $config_test->label(),
-      '#href' => $uri['path'],
+      '#path' => $uri['path'],
       '#options' => $uri['options'],
     );
     $row['delete']['data'] = array(
       '#type' => 'link',
       '#title' => t('Delete'),
-      '#href' => $uri['path'] . '/delete',
+      '#path' => $uri['path'] . '/delete',
       '#options' => $uri['options'],
     );
     $rows[] = $row;
diff --git a/core/modules/field_ui/field_ui.admin.inc b/core/modules/field_ui/field_ui.admin.inc
index bb99234..44fd43b 100644
--- a/core/modules/field_ui/field_ui.admin.inc
+++ b/core/modules/field_ui/field_ui.admin.inc
@@ -382,25 +382,25 @@ function field_ui_field_overview_form($form, &$form_state, $entity_type, $bundle
       'type' => array(
         '#type' => 'link',
         '#title' => t($field_types[$field['type']]['label']),
-        '#href' => $admin_field_path . '/field-settings',
+        '#path' => $admin_field_path . '/field-settings',
         '#options' => array('attributes' => array('title' => t('Edit field settings.'))),
       ),
       'widget_type' => array(
         '#type' => 'link',
         '#title' => t($widget_types[$instance['widget']['type']]['label']),
-        '#href' => $admin_field_path . '/widget-type',
+        '#path' => $admin_field_path . '/widget-type',
         '#options' => array('attributes' => array('title' => t('Change widget type.'))),
       ),
       'edit' => array(
         '#type' => 'link',
         '#title' => t('edit'),
-        '#href' => $admin_field_path,
+        '#path' => $admin_field_path,
         '#options' => array('attributes' => array('title' => t('Edit instance settings.'))),
       ),
       'delete' => array(
         '#type' => 'link',
         '#title' => t('delete'),
-        '#href' => $admin_field_path . '/delete',
+        '#path' => $admin_field_path . '/delete',
         '#options' => array('attributes' => array('title' => t('Delete instance.'))),
       ),
     );
diff --git a/core/modules/filter/filter.admin.inc b/core/modules/filter/filter.admin.inc
index 044fe58..2af8a6a 100644
--- a/core/modules/filter/filter.admin.inc
+++ b/core/modules/filter/filter.admin.inc
@@ -32,8 +32,8 @@ function filter_admin_overview($form) {
       $roles_markup = $roles ? implode(', ', $roles) : t('No roles may use this format');
     }
     $form['formats'][$id]['roles'] = array('#markup' => $roles_markup);
-    $form['formats'][$id]['configure'] = array('#type' => 'link', '#title' => t('configure'), '#href' => 'admin/config/content/formats/' . $id);
-    $form['formats'][$id]['disable'] = array('#type' => 'link', '#title' => t('disable'), '#href' => 'admin/config/content/formats/' . $id . '/disable', '#access' => !$form['formats'][$id]['#is_fallback']);
+    $form['formats'][$id]['configure'] = array('#type' => 'link', '#title' => t('configure'), '#path' => 'admin/config/content/formats/' . $id);
+    $form['formats'][$id]['disable'] = array('#type' => 'link', '#title' => t('disable'), '#path' => 'admin/config/content/formats/' . $id . '/disable', '#access' => !$form['formats'][$id]['#is_fallback']);
     $form['formats'][$id]['weight'] = array(
       '#type' => 'weight',
       '#title' => t('Weight for @title', array('@title' => $format->name)),
diff --git a/core/modules/forum/forum.admin.inc b/core/modules/forum/forum.admin.inc
index e3c564a..8e60a39 100644
--- a/core/modules/forum/forum.admin.inc
+++ b/core/modules/forum/forum.admin.inc
@@ -294,7 +294,7 @@ function forum_overview($form, &$form_state) {
   foreach (element_children($form) as $key) {
     if (isset($form[$key]['#term'])) {
       $term = $form[$key]['#term'];
-      $form[$key]['view']['#href'] = 'forum/' . $term['tid'];
+      $form[$key]['view']['#path'] = 'forum/' . $term['tid'];
       unset($form[$key]['operations']['#links']['delete']);
       if (in_array($form[$key]['#term']['tid'], $config->get('containers'))) {
         $form[$key]['operations']['#links']['edit']['title'] = t('edit container');
diff --git a/core/modules/image/image.admin.inc b/core/modules/image/image.admin.inc
index b399fba..9d953f2 100644
--- a/core/modules/image/image.admin.inc
+++ b/core/modules/image/image.admin.inc
@@ -82,13 +82,13 @@ function image_style_form($form, &$form_state, $style) {
       $form['effects'][$key]['configure'] = array(
         '#type' => 'link',
         '#title' => t('edit'),
-        '#href' => 'admin/config/media/image-styles/edit/' . $style['name'] . '/effects/' . $key,
+        '#path' => 'admin/config/media/image-styles/edit/' . $style['name'] . '/effects/' . $key,
         '#access' => isset($effect['form callback']),
       );
       $form['effects'][$key]['remove'] = array(
         '#type' => 'link',
         '#title' => t('delete'),
-        '#href' => 'admin/config/media/image-styles/edit/' . $style['name'] . '/effects/' . $key . '/delete',
+        '#path' => 'admin/config/media/image-styles/edit/' . $style['name'] . '/effects/' . $key . '/delete',
       );
     }
   }
@@ -370,7 +370,7 @@ function image_effect_form($form, &$form_state, $style, $effect) {
   $form['actions']['cancel'] = array(
     '#type' => 'link',
     '#title' => t('Cancel'),
-    '#href' => 'admin/config/media/image-styles/edit/' . $style['name'],
+    '#path' => 'admin/config/media/image-styles/edit/' . $style['name'],
   );
 
   return $form;
diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc
index af2b3b1..b2da3b8 100644
--- a/core/modules/language/language.admin.inc
+++ b/core/modules/language/language.admin.inc
@@ -77,12 +77,12 @@ function language_admin_overview_form($form, &$form_state) {
       $form['languages'][$langcode]['operations']['edit'] = array(
         '#type' => 'link',
         '#title' => t('edit'),
-        '#href' => 'admin/config/regional/language/edit/' . $langcode,
+        '#path' => 'admin/config/regional/language/edit/' . $langcode,
       );
       $form['languages'][$langcode]['operations']['delete'] = array(
         '#type' => 'link',
         '#title' => t('delete'),
-        '#href' => 'admin/config/regional/language/delete/' . $langcode,
+        '#path' => 'admin/config/regional/language/delete/' . $langcode,
         '#access' => $langcode != $default->langcode,
       );
     }
@@ -538,7 +538,7 @@ function language_negotiation_configure_form_table(&$form, $type) {
 
       $config_op = array();
       if (isset($method['config'])) {
-        $config_op = array('#type' => 'link', '#title' => t('Configure'), '#href' => $method['config']);
+        $config_op = array('#type' => 'link', '#title' => t('Configure'), '#path' => $method['config']);
         // If there is at least one operation enabled show the operation column.
         $table_form['#show_operations'] = TRUE;
       }
diff --git a/core/modules/menu/menu.admin.inc b/core/modules/menu/menu.admin.inc
index fc38caa..ebbe4df 100644
--- a/core/modules/menu/menu.admin.inc
+++ b/core/modules/menu/menu.admin.inc
@@ -135,14 +135,14 @@ function _menu_overview_tree_form($tree, $delta = 50) {
       );
       // Build a list of operations.
       $operations = array();
-      $operations['edit'] = array('#type' => 'link', '#title' => t('edit'), '#href' => 'admin/structure/menu/item/' . $item['mlid'] . '/edit');
+      $operations['edit'] = array('#type' => 'link', '#title' => t('edit'), '#path' => 'admin/structure/menu/item/' . $item['mlid'] . '/edit');
       // Only items created by the menu module can be deleted.
       if ($item['module'] == 'menu' || $item['updated'] == 1) {
-        $operations['delete'] = array('#type' => 'link', '#title' => t('delete'), '#href' => 'admin/structure/menu/item/' . $item['mlid'] . '/delete');
+        $operations['delete'] = array('#type' => 'link', '#title' => t('delete'), '#path' => 'admin/structure/menu/item/' . $item['mlid'] . '/delete');
       }
       // Set the reset column.
       elseif ($item['module'] == 'system' && $item['customized']) {
-        $operations['reset'] = array('#type' => 'link', '#title' => t('reset'), '#href' => 'admin/structure/menu/item/' . $item['mlid'] . '/reset');
+        $operations['reset'] = array('#type' => 'link', '#title' => t('reset'), '#path' => 'admin/structure/menu/item/' . $item['mlid'] . '/reset');
       }
       $form[$mlid]['operations'] = $operations;
     }
diff --git a/core/modules/node/node.admin.inc b/core/modules/node/node.admin.inc
index 5cbe4ef..47b2fe9 100644
--- a/core/modules/node/node.admin.inc
+++ b/core/modules/node/node.admin.inc
@@ -487,7 +487,7 @@ function node_admin_nodes() {
         'data' => array(
           '#type' => 'link',
           '#title' => $node->label(),
-          '#href' => 'node/' . $node->nid,
+          '#path' => 'node/' . $node->nid,
           '#options' => $l_options,
           '#suffix' => ' ' . theme('mark', array('type' => node_mark($node->nid, $node->changed))),
         ),
@@ -534,7 +534,7 @@ function node_admin_nodes() {
         'data' => array(
           '#type' => 'link',
           '#title' => $link['title'],
-          '#href' => $link['href'],
+          '#path' => $link['href'],
           '#options' => array('query' => $link['query']),
         ),
       );
diff --git a/core/modules/overlay/overlay.module b/core/modules/overlay/overlay.module
index e03c032..e310896 100644
--- a/core/modules/overlay/overlay.module
+++ b/core/modules/overlay/overlay.module
@@ -377,7 +377,7 @@ function overlay_disable_message() {
       'profile_link' => array(
         '#type' => 'link',
         '#title' => t('If you have problems accessing administrative pages on this site, disable the overlay on your profile page.'),
-        '#href' => 'user/' . $user->uid . '/edit',
+        '#path' => 'user/' . $user->uid . '/edit',
         '#options' => array(
           'query' => drupal_get_destination(),
           'fragment' => 'edit-overlay-control',
@@ -393,7 +393,7 @@ function overlay_disable_message() {
       'dismiss_message_link' => array(
         '#type' => 'link',
         '#title' => t('Dismiss this message.'),
-        '#href' => 'overlay/dismiss-message',
+        '#path' => 'overlay/dismiss-message',
         '#options' => array(
           'query' => drupal_get_destination() + array(
             // Add a token to protect against cross-site request forgeries.
diff --git a/core/modules/shortcut/shortcut.module b/core/modules/shortcut/shortcut.module
index 9bbb12a..d1bdab9 100644
--- a/core/modules/shortcut/shortcut.module
+++ b/core/modules/shortcut/shortcut.module
@@ -704,7 +704,7 @@ function shortcut_preprocess_page(&$variables) {
         '#prefix' => '<div class="add-or-remove-shortcuts ' . $link_mode . '-shortcut">',
         '#type' => 'link',
         '#title' => '<span class="icon">'. t('Add or remove shortcut') .'</span><span class="text">' . $link_text . '</span>',
-        '#href' => $link_path,
+        '#path' => $link_path,
         '#options' => array('query' => $query, 'html' => TRUE),
         '#suffix' => '</div>',
       );
@@ -742,7 +742,7 @@ function shortcut_toolbar_pre_render($toolbar) {
     $configure_link = array(
       '#type' => 'link',
       '#title' => t('Edit shortcuts'),
-      '#href' => 'admin/config/user-interface/shortcut/' . $shortcut_set->set_name,
+      '#path' => 'admin/config/user-interface/shortcut/' . $shortcut_set->set_name,
       '#options' => array('attributes' => array('id' => 'edit-shortcuts')),
     );
   }
diff --git a/core/modules/simpletest/simpletest.pages.inc b/core/modules/simpletest/simpletest.pages.inc
index 337a62c..b0246ae 100644
--- a/core/modules/simpletest/simpletest.pages.inc
+++ b/core/modules/simpletest/simpletest.pages.inc
@@ -324,7 +324,7 @@ function simpletest_result_form($form, &$form_state, $test_id) {
   $form['action']['return'] = array(
     '#type' => 'link',
     '#title' => t('Return to list'),
-    '#href' => 'admin/config/development/testing',
+    '#path' => 'admin/config/development/testing',
   );
 
   if (is_numeric($test_id)) {
diff --git a/core/modules/system/lib/Drupal/system/Tests/Common/RenderTest.php b/core/modules/system/lib/Drupal/system/Tests/Common/RenderTest.php
index ec3d95b..b840b95 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Common/RenderTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Common/RenderTest.php
@@ -229,13 +229,13 @@ class RenderTest extends WebTestBase {
     $element = array(
       '#type' => 'link',
       '#title' => $this->randomName(),
-      '#href' => $this->randomName(),
+      '#path' => $this->randomName(),
       '#options' => array(
         'absolute' => TRUE,
       ),
     );
     $this->assertRenderedElement($element, '//a[@href=:href and contains(., :title)]', array(
-      ':href' => url($element['#href'], array('absolute' => TRUE)),
+      ':href' => url($element['#path'], array('absolute' => TRUE)),
       ':title' => $element['#title'],
     ));
 
diff --git a/core/modules/system/lib/Drupal/system/Tests/Menu/TreeOutputTest.php b/core/modules/system/lib/Drupal/system/Tests/Menu/TreeOutputTest.php
index e74b820..eac5dcc 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Menu/TreeOutputTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Menu/TreeOutputTest.php
@@ -57,7 +57,7 @@ class TreeOutputTest extends WebTestBase {
     $this->assertEqual( $output['1']['#theme'], 'menu_link__main_menu', t('Hyphen is changed to a dash on menu_link'));
     $this->assertEqual( $output['#theme_wrappers'][0], 'menu_tree__main_menu', t('Hyphen is changed to a dash on menu_tree wrapper'));
     // Looking for child items in the data
-    $this->assertEqual( $output['1']['#below']['2']['#href'], 'a/b', t('Checking the href on a child item'));
+    $this->assertEqual( $output['1']['#below']['2']['#path'], 'a/b', t('Checking the href on a child item'));
     $this->assertTrue( in_array('active-trail',$output['1']['#below']['2']['#attributes']['class']) , t('Checking the active trail class'));
     // Validate that the hidden and no access items are missing
     $this->assertFalse( isset($output['5']), t('Hidden item should be missing'));
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index 2bf4343..91b043c 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -866,7 +866,7 @@ function system_modules($form, $form_state = array()) {
         $extra['links']['help'] = array(
           '#type' => 'link',
           '#title' => t('Help'),
-          '#href' => "admin/help/$filename",
+          '#path' => "admin/help/$filename",
           '#options' => array('attributes' => array('class' =>  array('module-link', 'module-link-help'), 'title' => t('Help'))),
         );
       }
@@ -876,7 +876,7 @@ function system_modules($form, $form_state = array()) {
       $extra['links']['permissions'] = array(
         '#type' => 'link',
         '#title' => t('Permissions'),
-        '#href' => 'admin/people/permissions',
+        '#path' => 'admin/people/permissions',
         '#options' => array('fragment' => 'module-' . $filename, 'attributes' => array('class' => array('module-link', 'module-link-permissions'), 'title' => t('Configure permissions'))),
       );
     }
@@ -888,7 +888,7 @@ function system_modules($form, $form_state = array()) {
         $extra['links']['configure'] = array(
           '#type' => 'link',
           '#title' => t('Configure'),
-          '#href' => $configure_link['href'],
+          '#path' => $configure_link['href'],
           '#options' => array('attributes' => array('class' => array('module-link', 'module-link-configure'), 'title' => $configure_link['description'])),
         );
       }
@@ -2102,7 +2102,7 @@ function system_date_time_settings() {
         $form['formats']['delete']['date_format_' . $type . '_delete'] = array(
           '#type' => 'link',
           '#title' => t('delete'),
-          '#href' => 'admin/config/regional/date-time/types/' . $type . '/delete',
+          '#path' => 'admin/config/regional/date-time/types/' . $type . '/delete',
         );
       }
     }
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 80ba5ad..08f4b43 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -3339,7 +3339,7 @@ function confirm_form($form, $question, $path, $description = NULL, $yes = NULL,
   $form['actions']['cancel'] = array(
     '#type' => 'link',
     '#title' => $no ? $no : t('Cancel'),
-    '#href' => $options['path'],
+    '#path' => $options['path'],
     '#options' => $options,
   );
   // By default, render the form using theme_confirm_form().
diff --git a/core/modules/system/tests/modules/ajax_test/ajax_test.module b/core/modules/system/tests/modules/ajax_test/ajax_test.module
index c1d9f3e..e954439 100644
--- a/core/modules/system/tests/modules/ajax_test/ajax_test.module
+++ b/core/modules/system/tests/modules/ajax_test/ajax_test.module
@@ -67,7 +67,7 @@ function ajax_test_link() {
   $build['link'] = array(
     '#type' => 'link',
     '#title' => 'Show help',
-    '#href' => 'filter/tips',
+    '#path' => 'filter/tips',
     '#ajax' => array(
       'wrapper' => 'block-system-main',
     ),
diff --git a/core/modules/taxonomy/taxonomy.admin.inc b/core/modules/taxonomy/taxonomy.admin.inc
index ecef0b5..12c140d 100644
--- a/core/modules/taxonomy/taxonomy.admin.inc
+++ b/core/modules/taxonomy/taxonomy.admin.inc
@@ -28,9 +28,9 @@ function taxonomy_overview_vocabularies($form) {
       '#delta' => 10,
       '#default_value' => $vocabulary->weight,
     );
-    $form[$vocabulary->vid]['edit'] = array('#type' => 'link', '#title' => t('edit vocabulary'), '#href' => "admin/structure/taxonomy/$vocabulary->machine_name/edit");
-    $form[$vocabulary->vid]['list'] = array('#type' => 'link', '#title' => t('list terms'), '#href' => "admin/structure/taxonomy/$vocabulary->machine_name");
-    $form[$vocabulary->vid]['add'] = array('#type' => 'link', '#title' => t('add terms'), '#href' => "admin/structure/taxonomy/$vocabulary->machine_name/add");
+    $form[$vocabulary->vid]['edit'] = array('#type' => 'link', '#title' => t('edit vocabulary'), '#path' => "admin/structure/taxonomy/$vocabulary->machine_name/edit");
+    $form[$vocabulary->vid]['list'] = array('#type' => 'link', '#title' => t('list terms'), '#path' => "admin/structure/taxonomy/$vocabulary->machine_name");
+    $form[$vocabulary->vid]['add'] = array('#type' => 'link', '#title' => t('add terms'), '#path' => "admin/structure/taxonomy/$vocabulary->machine_name/add");
   }
 
   // Only make this form include a submit button and weight if more than one
@@ -248,7 +248,7 @@ function taxonomy_overview_terms($form, &$form_state, Vocabulary $vocabulary) {
       unset($form[$key]['#term']['parents'], $term->parents);
     }
 
-    $form[$key]['view'] = array('#type' => 'link', '#title' => $term->label(), '#href' => "taxonomy/term/$term->tid");
+    $form[$key]['view'] = array('#type' => 'link', '#title' => $term->label(), '#path' => "taxonomy/term/$term->tid");
     if ($vocabulary->hierarchy != TAXONOMY_HIERARCHY_MULTIPLE && count($tree) > 1) {
       $form['#parent_fields'] = TRUE;
       $form[$key]['tid'] = array(
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index 0f8b6b5..3a82e4f 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -1323,7 +1323,7 @@ function taxonomy_field_formatter_view($entity_type, $entity, $field, $instance,
           $element[$delta] = array(
             '#type' => 'link',
             '#title' => $term->label(),
-            '#href' => $uri['path'],
+            '#path' => $uri['path'],
             '#options' => $uri['options'],
           );
         }
diff --git a/core/modules/user/user.admin.inc b/core/modules/user/user.admin.inc
index 3c39f24..2257899 100644
--- a/core/modules/user/user.admin.inc
+++ b/core/modules/user/user.admin.inc
@@ -210,7 +210,7 @@ function user_admin_account() {
       'roles' => theme('item_list', array('items' => $users_roles)),
       'member_for' => format_interval(REQUEST_TIME - $account->created),
       'access' =>  $account->access ? t('@time ago', array('@time' => format_interval(REQUEST_TIME - $account->access))) : t('never'),
-      'operations' => array('data' => array('#type' => 'link', '#title' => t('edit'), '#href' => "user/$account->uid/edit", '#options' => array('query' => $destination))),
+      'operations' => array('data' => array('#type' => 'link', '#title' => t('edit'), '#path' => "user/$account->uid/edit", '#options' => array('query' => $destination))),
     );
   }
 
@@ -869,12 +869,12 @@ function user_admin_roles($form, $form_state) {
     $form['roles'][$role->rid]['edit'] = array(
       '#type' => 'link',
       '#title' => t('edit role'),
-      '#href' => 'admin/people/roles/edit/' . $role->rid,
+      '#path' => 'admin/people/roles/edit/' . $role->rid,
     );
     $form['roles'][$role->rid]['permissions'] = array(
       '#type' => 'link',
       '#title' => t('edit permissions'),
-      '#href' => 'admin/people/permissions/' . $role->rid,
+      '#path' => 'admin/people/permissions/' . $role->rid,
     );
   }
 
