--- post.php.orig	2008-04-26 08:40:44.000000000 +0200
+++ post.php	2008-04-27 11:35:58.000000000 +0200
@@ -61,7 +61,7 @@
 		$_POST['post_status'] = 'draft';
 
 	if ( 'page' == $_POST['post_type'] ) {
-		if ('publish' == $_POST['post_status'] && !current_user_can( 'publish_pages' ))
+		if ('publish' == $_POST['post_status'] && ! (current_user_can( 'publish_pages' ) || current_user_can ( 'edit_published_pages' ) ) )
 			$_POST['post_status'] = 'pending';
 	} else {
 		if ('publish' == $_POST['post_status'] && !current_user_can( 'publish_posts' ))
