OK thanks fellas, I now use function JidanniLessRedNavigation($sktemplate,$links){ foreach($links['namespaces'] as $ns=>&$value){ if($value['context']=='talk' && $value['class']=='new' && !$sktemplate->mTitle->quickUserCan('createtalk')){ unset($links['namespaces'][$ns]);} if($ns=='category' && $value['class']=='selected new'){ $value['class']='selected'; if(isset($links['actions']['watch'])){unset($links['actions']['watch']);}}} return true;} $wgHooks['SkinTemplateNavigation'][]='JidanniLessRedNavigation';
My specially clamped down radio scanning wiki was a 2007 WikiMania poster child http://jidanni.org/comp/wiki/article-category.html You can give it a whirl.
I could use in_array, explode, etc. but well, what I would be looking for is something nobody knows about yet, including me.
Maybe I should use isset()s every step of the way, lest users see embarrassing warnings one day when you fellows change something. Or perhaps no isset()s, that way users will notify me that something has changed in your structure, and I can adapt to get my function back working again.