Ok, one thing you may be running in to is that wp-blog-header.php (see top of your index.php), when it sees a set $cat=#, makes the assumption that you also want all the children of the specified category too (if they exist of course), even if you don’t. This was my case, so I did the following:
First, I wanted the index.php page to always insept with a certain set of posts so I ended up with this line after at the very beginning of index.php:: if (! isset($_GET[cat])) {$cat=6; $numberposts=9; $orderby="category"; $order="ASC"; $fetchkids=0;}
Next, the following code changes were made to wordpres/wp-blog-header.php
An aside thing to know is that 1.2.1 at least ‘allows’ only orderby= on 'author','date','category','title'
I also added a consumable variable called ‘fetchkids’ at the end of $wpvarstoreset array at line 51. Then at line 264 the code changes to:
if (! isset($fetchkids) || $fetchkids) {
$whichcat .= get_category_children($cat_array[0], ' '.$andor.' category_id '.$eq.' ');
for ($i = 1; $i < (count($cat_array)); $i = $i + 1) {
$whichcat .= ' '.$andor.' category_id '.$eq.' '.intval($cat_array[$i]);
$whichcat .= get_category_children($cat_array[$i], ' '.$andor.' category_id '.$eq.' ');
}
}
So, by setting $fetchkids to FALSE (0) above, and adding the code, I effectively broke out of the bit that would end up fetching all the children posts of my parent category.
Yes, it’s a hack but no less elegant than the convention I see in place w/in wordpress/wp-blog-header.php;