diff --git a/includes/common.inc b/includes/common.inc
index d64be82..beb4e49 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -5322,6 +5322,12 @@ function drupal_pre_render_conditional_comments($elements) {
  *   The passed-in elements containing a rendered link in '#markup'.
  */
 function drupal_pre_render_link($element) {
+  // Allow #title to be render array, also the html option for l() need to be set.
+  if (is_array($element['#title'])) {
+    $element['#title'] = render($element['#title']);
+    $element['#options']['html'] = true;
+  }
+              
   // By default, link options to pass to l() are normally set in #options.
   $element += array('#options' => array());
   // However, within the scope of renderable elements, #attributes is a valid
