diff --git a/inc/html.php b/inc/html.php
index 42aba69653b6be226a3a80b16adc8594473c754d..06060e2db20677e414e17e4bb3d9ee5d5570e9cd 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -15,19 +15,14 @@
  *
  * @author Andreas Gohr <andi@splitbrain.org>
  */
-function html_wikilink($url,$name='',$search=''){
-  global $conf;
-  $link         = array();
-  $link['url']  = $url;
-  $link['name'] = $name;
-  $link         = format_link_wiki($link);
-
-  if($search){
-    ($conf['userewrite']) ? $link['url'].='?s=' : $link['url'].='&amp;s=';
-    $link['url'] .= urlencode($search);
+function html_wikilink($id,$name='',$search=''){
+  require_once(DOKU_INC.'inc/parser/xhtml.php');
+  static $xhtml_renderer = NULL;
+  if(is_null($xhtml_renderer)){
+    $xhtml_renderer = new Doku_Renderer_xhtml(); 
   }
 
-  return format_link_build($link);
+  return $xhtml_renderer->internallink($id,$name,$search);
 }
 
 /**
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index 52efa9f7261e0211841b494587db0c5a842350c8..0b1531a653d3a7e564deaef261e1a6dca7794759 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -388,7 +388,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
       $this->internallink($link,$link); 
     }
     
-    function internallink($id, $name = NULL) {
+    function internallink($id, $name = NULL, $search=NULL) {
         global $conf;
 
         $name = $this->_getLinkTitle($name, $this->_simpleTitle($id), $isImage, $id);
@@ -415,6 +415,12 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
         $link['name']   = $name;
         $link['title']  = $id;
 
+        //add search string
+        if($search){
+            ($conf['userewrite']) ? $link['url'].='?s=' : $link['url'].='&amp;s=';
+            $link['url'] .= urlencode($search);
+        }
+
         //output formatted
         echo $this->_formatLink($link);
     }