Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 11340)
+++ wp-includes/post.php	(working copy)
@@ -2246,11 +2246,10 @@
 					$exclusions = $wpdb->prepare(' AND ( ID <> %d ', $expage);
 				else
 					$exclusions .= $wpdb->prepare(' AND ID <> %d ', $expage);
-			}
+			}			
+			$exclusions .= ')';
 		}
 	}
-	if (!empty($exclusions))
-		$exclusions .= ')';
 
 	$author_query = '';
 	if (!empty($authors)) {
@@ -2317,17 +2316,13 @@
 		$pages = & get_page_children($child_of, $pages);
 
 	if ( !empty($exclude_tree) ) {
-		$exclude = array();
-
-		$exclude = (int) $exclude_tree;
-		$children = get_page_children($exclude, $pages);
-		$excludes = array();
-		foreach ( $children as $child )
-			$excludes[] = $child->ID;
-		$excludes[] = $exclude;
+		$excludes = array_map('intval', explode(',', $exclude_tree));
+		
+		// exclude tree will work as describben - self and direct childs only (!)		
 		$total = count($pages);
 		for ( $i = 0; $i < $total; $i++ ) {
-			if ( in_array($pages[$i]->ID, $excludes) )
+			if ( in_array($pages[$i]->ID, $excludes) || 
+			     in_array($pages[$i]->post_parent, $excludes))			     
 				unset($pages[$i]);
 		}
 	}
