Index: admin-db.php
===================================================================
--- admin-db.php	(revision 4419)
+++ admin-db.php	(working copy)
@@ -151,6 +151,9 @@
 
 	$cat_ID = (int) $catarr['cat_ID'];
 
+	if( $cat_ID == $catarr['category_parent'] )
+		return false;
+
 	// First, get all of the original fields
 	$category = get_category($cat_ID, ARRAY_A);
 
Index: categories.php
===================================================================
--- categories.php	(revision 4419)
+++ categories.php	(working copy)
@@ -60,9 +60,11 @@
 	if ( !current_user_can('manage_categories') )
 		wp_die(__('Cheatin&#8217; uh?'));
 
-	wp_update_category($_POST);
-
-	wp_redirect('categories.php?message=3');
+	if( wp_update_category($_POST) ) {
+		wp_redirect('categories.php?message=3');
+	} else {
+		wp_redirect('categories.php?message=5');
+	}
 break;
 
 default:
@@ -74,6 +76,7 @@
 $messages[2] = __('Category deleted.');
 $messages[3] = __('Category updated.');
 $messages[4] = __('Category not added.');
+$messages[5] = __('Category not updated.');
 ?>
 
 <?php if (isset($_GET['message'])) : ?>
