diff --git a/taxonomynode.module b/taxonomynode.module
index 4cb0f9b..42ca9c4 100644
--- a/taxonomynode.module
+++ b/taxonomynode.module
@@ -396,6 +396,19 @@ function taxonomynode_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
       // the association from the database.
       db_query("DELETE FROM {taxonomynode} WHERE nid = %d", $node->nid);
       break;
+
+    case 'view' :
+      $tid = _taxonomynode_get_tid_from_nid($node->nid);
+      if($tid){ //this is a taxonomy_node
+        $nodes_result = taxonomy_select_nodes(array($tid), 'or', 'all', $pager = TRUE);
+        $node = node_prepare($node, $teaser);
+        //print result nodes
+        $node->content['taxonomy_node'] = array(
+          '#value' => taxonomy_render_nodes($nodes_result), 
+          '#weight' => 1,
+        );
+      }
+      break;
   }
 }
 
@@ -428,4 +441,28 @@ function taxonomynode_settings() {
   );
 
   return system_settings_form($form);
-}
\ No newline at end of file
+}
+
+
+/**
+ * Implementation of hook_link_alter().
+ */
+function taxonomynode_link_alter(&$links, $node, $comment = NULL) {
+  //look for the taxonomy into the node
+  foreach ($node->taxonomy as $tid => $term) {
+    $nid = _taxonomynode_get_nid_from_tid($term->tid); //check if the term is a taxonomynode
+    if($nid){
+      $term_path = drupal_get_path_alias(taxonomy_term_path($term));
+      $taxonomy_node = node_load($nid);
+      foreach ($links as $module => $link) {
+        $tid_link = str_replace('taxonomy_term_', '', $module);
+        if (strstr($module, 'taxonomy_term') && $tid_link == $term->tid) {
+          // Link back to the taxonomynode and not the taxonomy term page
+          $links[$module]['href'] = drupal_get_path_alias('node/' . $nid);
+          $links[$module]['title'] = $taxonomy_node->title; //change to the taxonomynode title
+        }
+      }
+    }   
+  }
+}
+
