diff -pruN framework/style.css framework_ao2/style.css
--- framework/style.css	2008-11-28 07:14:30.000000000 +0100
+++ framework_ao2/style.css	2009-03-09 16:36:26.000000000 +0100
@@ -544,8 +544,8 @@ ul.menu li.expanded ul { margin-top: .1e
 /* menu zebra coloring */
 ul.menu li { border-bottom: 1px solid #d4e7f3; padding: .2em 0 .2em 0; }
 ul.menu li a { padding: .2em 0 .2em 1.5em; }
-ul.menu li.odd { background-color: #fff; }
-ul.menu li.even { background-color: #edf5fa; }
+ul li.odd { background-color: #fff; }
+ul li.even { background-color: #edf5fa; }
 ul.menu li.expanded { background-color: #d4e7f3; border: none; padding-bottom: 0; }
 ul.menu li.expanded ul { border-bottom: 3px solid #d4e7f3; border-top: 1px solid #b4d7f0; margin-top: .2em; }
 
@@ -642,4 +642,4 @@ div.error, tr.error { background-color: 
 table.system-status-report th { border-color: #d4e7f3; }
 table.system-status-report tr.error, table.system-status-report tr.error th { background-color: #fcc; border-color: #ebb; color: #200; }
 table.system-status-report tr.warning, table.system-status-report tr.warning th { background-color: #ffd; border-color: #eeb; }
-table.system-status-report tr.ok, table.system-status-report tr.ok th { background-color: #dfd; border-color: #beb; }
\ No newline at end of file
+table.system-status-report tr.ok, table.system-status-report tr.ok th { background-color: #dfd; border-color: #beb; }
diff -pruN framework/template.php framework_ao2/template.php
--- framework/template.php	2008-11-28 07:14:30.000000000 +0100
+++ framework_ao2/template.php	2009-03-10 19:49:07.000000000 +0100
@@ -103,23 +103,60 @@ function phptemplate_get_ie6_styles() {
 }
 
 /**
- * Adds even and odd classes to <li> tags in ul.menu lists
- */ 
-function phptemplate_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
-  static $zebra = FALSE;
-  $zebra = !$zebra;
-  $class = ($menu ? 'expanded' : ($has_children ? 'collapsed' : 'leaf'));
-  if (!empty($extra_class)) {
-    $class .= ' '. $extra_class;
+ * Override theme_item_list, see http://api.drupal.org/api/function/theme_item_list
+ *
+ * We can't do the same for menu lists because the correspondig function 
+ * menu_tree_output is not themeable yet, see http://drupal.org/node/283723
+ */
+function framework_item_list($items = array(), $title = NULL, $type = 'ul', $attributes = NULL) {
+  $output = '<div class="item-list">';
+  if (isset($title)) {
+    $output .= '<h3>'. $title .'</h3>';
   }
-  if ($in_active_trail) {
-    $class .= ' active-trail';
-  }
-  if ($zebra) {
-    $class .= ' even';
-  }
-  else {
-    $class .= ' odd';
+
+  if (!empty($items)) {
+    $output .= "<$type". drupal_attributes($attributes) .'>';
+    $num_items = count($items);
+    foreach ($items as $i => $item) {
+      $attributes = array();
+      $children = array();
+      if (is_array($item)) {
+        foreach ($item as $key => $value) {
+          if ($key == 'data') {
+            $data = $value;
+          }
+          elseif ($key == 'children') {
+            $children = $value;
+          }
+          else {
+            $attributes[$key] = $value;
+          }
+        }
+      }
+      else {
+        $data = $item;
+      }
+      if (count($children) > 0) {
+        $data .= theme_item_list($children, NULL, $type, $attributes); // Render nested list
+      }
+      if ($i == 0) {
+        $attributes['class'] = empty($attributes['class']) ? 'first' : ($attributes['class'] .' first');
+      }
+      if ($i == $num_items - 1) {
+        $attributes['class'] = empty($attributes['class']) ? 'last' : ($attributes['class'] .' last');
+      }
+
+      /* Add zebra coloring, this if-else block is the only addition to the original function */
+      if ($i % 2) {
+        $attributes['class'] = empty($attributes['class']) ? 'even' : ($attributes['class'] .' even');
+      } else {
+        $attributes['class'] = empty($attributes['class']) ? 'odd' : ($attributes['class'] .' odd');
+      }
+
+      $output .= '<li'. drupal_attributes($attributes) .'>'. $data ."</li>\n";
+    }
+    $output .= "</$type>";
   }
-  return '<li class="'. $class .'">'. $link . $menu ."</li>\n";
+  $output .= '</div>';
+  return $output;
 }
