diff --git a/sites/all/modules/contrib/views_navigation/views/views_navigation_plugin_entity_row_entity_view.inc b/sites/all/modules/contrib/views_navigation/views/views_navigation_plugin_entity_row_entity_view.inc
index f7dd7de..d8022d1 100644
--- a/sites/all/modules/contrib/views_navigation/views/views_navigation_plugin_entity_row_entity_view.inc
+++ b/sites/all/modules/contrib/views_navigation/views/views_navigation_plugin_entity_row_entity_view.inc
@@ -2,30 +2,13 @@
 
 class views_navigation_plugin_entity_row_entity_view extends entity_views_plugin_row_entity_view {
 
- public function render($values) {
-  if ($this->entity_type == 'node' && isset($this->view->views_navigation_cid)) {
-   foreach ($this->entities as $node) {
-    // The only way we found: look for the alias in the rendered HTML...
-    $alias = drupal_get_path_alias('node/' . $node->nid);
-    $this->_alter_markups_recursive($this->rendered_content, $alias, $node->nid);
-   }
+  public function render($values) {
+    if ($this->entity_type == 'node' && isset($this->view->views_navigation_cid)) {
+      foreach ($this->entities as $node) {
+        $this->rendered_content[$node->nid]['#post_render'][] = 'views_navigation_post_render';
+        $this->rendered_content[$node->nid]['#views_navigation_url'] = _views_navigation_build_url($node->nid, $this->view, array('absolute' => FALSE));
+      }
+    }
+    return parent::render($values);
   }
-  return parent::render($values);
- }
-
- private function _alter_markups_recursive(&$element, $alias, $nid) {
-   global $base_url;
-  if (isset($element['#markup'])) {
-   $pattern ='@href="(' . $base_url . ')?/' . trim($alias) . '"@';
-   if (preg_match($pattern, $element['#markup'])) {
-    module_load_include('inc', 'views_navigation');
-    $url = _views_navigation_build_url($nid, $this->view, array('absolute' => FALSE));
-    $element['#markup'] = preg_replace($pattern, 'href="' . $url . '"', $element['#markup']);
-   }
-  }
-  foreach(element_children($element) as $key) {
-   $this->_alter_markups_recursive($element[$key], $alias, $nid);
-  }
- }
-
-}
\ No newline at end of file
+}
diff --git a/sites/all/modules/contrib/views_navigation/views_navigation.module b/sites/all/modules/contrib/views_navigation/views_navigation.module
index fc689fe..1d999ab 100755
--- a/sites/all/modules/contrib/views_navigation/views_navigation.module
+++ b/sites/all/modules/contrib/views_navigation/views_navigation.module
@@ -149,3 +149,20 @@ function views_navigation_block_view() {
     );
   }
 }
+
+/**
+ * Change the default alias node url to a views_navigation url.
+ *
+ * #post_render callback.
+ */
+function views_navigation_post_render($children, $elements) {
+  global $base_url;
+  $node = $elements['#node'];
+  $url = $elements['#views_navigation_url'];
+  $alias = drupal_get_path_alias('node/' . $node->nid);
+  $pattern = '@href="(' . $base_url . ')?/' . trim($alias) . '"@';
+  if (preg_match($pattern, $children)) {
+    return preg_replace($pattern, 'href="' . $url . '"', $children);
+  }
+  return $children;
+}
