--- nice_menus.module.old	2008-11-30 15:20:21.000000000 +0100
+++ nice_menus.module	2009-02-23 22:03:24.000000000 +0100
@@ -210,16 +210,30 @@ function theme_nice_menu_tree($pid = 1, 
   $output['subject'] = check_plain($menu['items'][$pid]['title']);
 
   if ($menu['visible'][$pid]['children']) {
+    // Initialize counters for menu items
+    $i = 0;
+    $count = count($menu['visible'][$pid]['children']);
     // Build class name based on menu path 
     // e.g. to give each menu item individual style.
-    foreach ($menu['visible'][$pid]['children'] as $mid) {  
+    foreach ($menu['visible'][$pid]['children'] as $mid) {
+      $i++;  
       // Strip funny symbols
       $clean_path = str_replace(array('http://', '<', '>', '&', '=', '?', ':'), '', $menu['items'][$mid]['path']);
       // Convert slashes to dashes
       $clean_path = str_replace('/', '-', $clean_path);
       $path_class = 'menu-path-'. $clean_path;
+      // Adding extra class based on menu item position
+      if ($i == 1) {
+        $extra_class = ' first';
+      }
+      elseif ($i == $count) {
+        $extra_class = ' last';
+      }
+      else {
+        $extra_class = ' leaf';
+      }
       if (count($menu['visible'][$mid]['children']) > 0) {
-        $output['content'] .= '<li id="menu-'. $mid .'" class="menuparent '. $path_class .'">'. menu_item_link($mid);
+        $output['content'] .= '<li id="menu-'. $mid .'" class="menuparent '. $path_class . $extra_class .'">'. menu_item_link($mid);
         $output['content'] .= '<ul>';
         $tmp = theme('nice_menu_tree', $mid);
         $output['content'] .= $tmp['content'];
@@ -227,7 +241,7 @@ function theme_nice_menu_tree($pid = 1, 
         $output['content'] .= "</li>\n";
       }
       else {
-        $output['content'] .= '<li id="menu-'. $mid .'" class="'. $path_class .'">'. menu_item_link($mid) .'</li>'."\n";
+        $output['content'] .= '<li id="menu-'. $mid .'" class="'. $path_class . $extra_class .'">'. menu_item_link($mid) .'</li>'."\n";
       }
     }
   }
