diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 35b9cd3..da4c6c5 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1717,6 +1717,8 @@ function theme_link($variables) {
  *     navigate to or skip the links. See
  *     http://juicystudio.com/article/screen-readers-display-none.php and
  *     http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
+ *   - list: The type of list to return (e.g. "ul", "ol" or "menu"). Default set
+ *     to "ul".
  */
 function theme_links($variables) {
   $language_url = language(LANGUAGE_TYPE_URL);
@@ -1724,6 +1726,7 @@ function theme_links($variables) {
   $links = $variables['links'];
   $attributes = $variables['attributes'];
   $heading = $variables['heading'];
+  $list = check_plain($variables['list']);
   $output = '';
 
   if (!empty($links)) {
@@ -1748,7 +1751,7 @@ function theme_links($variables) {
       $output .= '</' . $heading['level'] . '>';
     }
 
-    $output .= '<ul' . new Attribute($attributes) . '>';
+    $output .= '<' . $list . new Attribute($attributes) . '>';
 
     $num_links = count($links);
     $i = 0;
@@ -1810,7 +1813,7 @@ function theme_links($variables) {
       $output .= '</li>';
     }
 
-    $output .= '</ul>';
+    $output .= '</' . $list . '>';
   }
 
   return $output;
@@ -3129,7 +3132,7 @@ function drupal_common_theme() {
       'variables' => array('text' => NULL, 'path' => NULL, 'options' => array()),
     ),
     'links' => array(
-      'variables' => array('links' => array(), 'attributes' => array('class' => array('links')), 'heading' => array()),
+      'variables' => array('links' => array(), 'list' => 'ul', 'attributes' => array('class' => array('links')), 'heading' => array()),
     ),
     'dropbutton_wrapper' => array(
       'render element' => 'element',
