Index: special_menu_items.module
===================================================================
--- special_menu_items.module	(revision 135)
+++ special_menu_items.module	(working copy)
@@ -46,7 +46,16 @@
   return $items;
 }
 
-
+function special_menu_items_theme() {
+  $items['special_menu_item_link'] = array (
+    'arguments' => array('link' => NULL),
+    );
+  $items['special_menu_item'] = array (
+    'arguments' => array('link' => NULL, 'has_children' => NULL, 'menu' => NULL, 'in_active_trail' => NULL, 'extra_class' => NULL),
+    );
+    
+  return $items;
+}
 /**
  * Page callback
 */
@@ -63,6 +72,10 @@
  * @ingroup themeable
  */
 function special_menu_itemsoverwrite_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
+  return theme('special_menu_item', $link, $has_children, $menu, $in_active_trail, $extra_class);
+}
+
+function theme_special_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
   $class = ($menu ? 'expanded' : ($has_children ? 'collapsed' : 'leaf'));
   if (!empty($extra_class)) {
     $class .= ' '. $extra_class;
@@ -87,6 +100,10 @@
  * overwriten menu_item_link function.
  */
 function special_menu_itemsoverwrite_menu_item_link($link) {
+  return theme('special_menu_item_link', $link); 
+}
+
+function theme_special_menu_item_link($link) {
   global $theme_key;
   
   $theme_overwrite = variable_get('oldtheme_menu_item_link', array());
