diff --git a/jcarousel.module b/jcarousel.module
index 0164dbf..d38bbf0 100644
--- a/jcarousel.module
+++ b/jcarousel.module
@@ -325,7 +325,6 @@ function jcarousel_skins() {
  *   instead it is one of the classes added to the UL tag.
  */
 function theme_jcarousel($variables) {
-  $items = $variables['items'];
   $options = $variables['options'];
   $identifier = $variables['identifier'];
   static $unique;
@@ -338,17 +337,13 @@ function theme_jcarousel($variables) {
   $options['skin'] = array_key_exists('skin', $options) ? $options['skin'] : 'default';
   jcarousel_add($identifier, $options);
 
-  $classes = 'jcarousel ' . $identifier;
+  $variables['attributes']['class'] = array('jcarousel ' . $identifier);
   if (!empty($options['skin'])) {
-    $classes .= ' jcarousel-skin-' . $options['skin'];
+    $variables['attributes']['class'][] = ' jcarousel-skin-' . $options['skin'];
   }
+  $variables['type'] = 'ul';
+  $variables['title'] = '';
 
-  $output = '<ul class="' . $classes . '">';
-  if (is_array($items)) {
-    foreach ($items as $item) {
-      $output .= '<li>' . $item . '</li>';
-    }
-  }
-  $output .= '</ul>';
-  return $output;
+  $list = theme_item_list($variables);
+  return render($list);
 }
