diff --git a/database/updates.inc b/database/updates.inc
index e7a1a24be937a2e576b9b842d0cbf1ded443e462..6511ae9913cf64247e5f6a5f88b77831caf6e060 100644
--- a/database/updates.inc
+++ b/database/updates.inc
@@ -939,8 +939,16 @@ function system_update_151() {
     // Gather links from various settings into a single array.
     $phptemplate_links = variable_get("phptemplate_". $menus[$loop]['links_var'], array());
     $phptemplate_links_more = variable_get("phptemplate_". $menus[$loop]['links_var'] ."_more", array());
-    if (isset($ts) && is_array($ts) && is_array($ts[$menus[$loop]['links_var']])) {
-      $theme_links = $ts[$menus[$loop]['links_var']];
+    if (isset($ts) && is_array($ts)) {
+      if (is_array($ts[$menus[$loop]['links_var']])) {
+        $theme_links = $ts[$menus[$loop]['links_var']];
+      }
+      else {
+        // Convert old xtemplate style links.
+        preg_match_all('/<a\s+.*?href=[\"\'\s]?(.*?)[\"\'\s]?>(.*?)<\/a>/i', $ts[$menus[$loop]['links_var']], $urls);
+        $theme_links['text'] = $urls[2];
+        $theme_links['link'] = $urls[1];
+      }
     }
     else {
       $theme_links = array();