Index: wp-admin/admin-functions.php
===================================================================
--- wp-admin/admin-functions.php	(revision 3429)
+++ wp-admin/admin-functions.php	(working copy)
@@ -607,42 +607,68 @@
 	}
 }
 
-function page_rows($parent = 0, $level = 0, $pages = 0) {
-	global $wpdb, $class, $post;
-	if (!$pages)
-		$pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_status = 'static' ORDER BY menu_order");
-
-	if ($pages) {
-		foreach ($pages as $post) {
-			start_wp();
-			if ($post->post_parent == $parent) {
-				$post->post_title = wp_specialchars($post->post_title);
-				$pad = str_repeat('&#8212; ', $level);
-				$id = $post->ID;
-				$class = ('alternate' == $class) ? '' : 'alternate';
+function page_rows($searching = false, $pages, $pages_columns, $parent = 0, $level = 0) {
+	global $class, $post;
+	if (!$pages) return false;		
+	foreach ($pages as $post) {
+		start_wp();
+		if (($post->post_parent == $parent) || $searching) {
+			$post->post_title = wp_specialchars($post->post_title);
+			$pad = (!$searching) ? str_repeat('&#8212; ', $level) : "";
+			$id = $post->ID;
+			$class = ('alternate' == $class) ? '' : 'alternate';
 ?>
-  <tr id='page-<?php echo $id; ?>' class='<?php echo $class; ?>'> 
-    <th scope="row"><?php echo $post->ID; ?></th> 
-    <td>
-      <?php echo $pad; ?><?php the_title() ?> 
-    </td> 
-    <td><?php the_author() ?></td>
-    <td><?php echo mysql2date('Y-m-d g:i a', $post->post_modified); ?></td> 
-	<td><a href="<?php the_permalink(); ?>" rel="permalink" class="edit"><?php _e('View'); ?></a></td>
-    <td><?php if ( current_user_can('edit_pages') ) { echo "<a href='post.php?action=edit&amp;post=$id' class='edit'>" . __('Edit') . "</a>"; } ?></td> 
-    <td><?php if ( current_user_can('edit_pages') ) { echo "<a href='post.php?action=delete&amp;post=$id' class='delete' onclick=\"return deleteSomething( 'page', " . $id . ", '" . sprintf(__("You are about to delete the &quot;%s&quot; page.\\n&quot;OK&quot; to delete, &quot;Cancel&quot; to stop."), wp_specialchars(get_the_title('','',0), 1)) . "' );\">" . __('Delete') . "</a>"; } ?></td> 
-  </tr> 
-
-<?php
-
-				page_rows($id, $level +1, $pages);
+  		<tr id='page-<?php echo $id; ?>' class='<?php echo $class; ?>'> 
+<? 
+			foreach($pages_columns as $column_name => $column_display_name) {
+				switch($column_name) {
+					
+					case 'id':
+						?><th scope="row"><?php echo $id ?></th><?php
+						break;
+				
+					case 'title':
+						?>
+						<td><?php echo $pad; the_title(); ?></td><?php
+						break;		
+				
+					case 'owner':
+						?><td><?php the_author() ?></td><?php
+						break;
+				
+					case 'updated':
+						?><td><?php echo mysql2date('Y-m-d g:i a', $post->post_modified); ?></td><?php
+						break;
+		
+					case 'control_view':
+						?>
+						<td><a href="<?php the_permalink(); ?>" rel="permalink" class="edit"><?php _e('View'); ?></a></td>
+						<?php
+						break;
+				
+					case 'control_edit':
+						?>
+						<td><?php if ( current_user_can('edit_pages') ) { echo "<a href='post.php?action=edit&amp;post=$id' class='edit'>" . __('Edit') . "</a>"; } ?></td>
+						<?php
+						break;
+				
+					case 'control_delete':
+						?>
+						<td><?php if ( current_user_can('edit_pages') ) { echo "<a href='post.php?action=delete&amp;post=$id' class='delete' onclick=\"return deleteSomething( 'page', " . $id . ", '" . sprintf(__("You are about to delete the &quot;%s&quot; page.\\n&quot;OK&quot; to delete, &quot;Cancel&quot; to stop."), wp_specialchars(get_the_title('','',0), 1)) . "' );\">" . __('Delete') . "</a>"; } ?></td>
+						<?php
+						break;
+				
+					default:
+						?><td><?php do_action('manage_pages_custom_column', $column_name, $id); ?></td><?php
+						break;		
+				}
 			}
-		}
-	} else {
-		return false;
+			if (!$searching) page_rows($searching, $pages, $pages_columns, $id, $level +1);
+		} 
 	}
 }
 
+
 function wp_dropdown_cats($currentcat = 0, $currentparent = 0, $parent = 0, $level = 0, $categories = 0) {
 	global $wpdb, $bgcolor;
 	if (!$categories) {
Index: wp-admin/edit-pages.php
===================================================================
--- wp-admin/edit-pages.php	(revision 3429)
+++ wp-admin/edit-pages.php	(working copy)
@@ -12,7 +12,7 @@
 
 <form name="searchform" action="" method="get"> 
   <fieldset> 
-  <legend><?php _e('Search Pages&hellip;') ?></legend>
+  <legend><?php _e('Search Pages') ?></legend>
   <input type="text" name="s" value="<?php if (isset($_GET['s'])) echo wp_specialchars($_GET['s'], 1); ?>" size="17" /> 
   <input type="submit" name="submit" value="<?php _e('Search') ?>"  /> 
   </fieldset>
@@ -20,54 +20,46 @@
 
 <?php
 
-$show_post_type = 'page';
-
-if ( isset($_GET['s']) )
-	wp();
+if (isset($_GET['s']) && ("" != $_GET['s'])) {
+	$s = $_GET['s'];
+	$searching = true;
+	$pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_status = 'static' AND (post_title LIKE '%$s%' OR post_content LIKE '%$s%')");	
+}
 else
-	$posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_status = 'static'");
+	$pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_status = 'static' ORDER BY menu_order");
 
-if ($posts) {
+if ($pages) {
+
+$pages_columns = array(
+  'id' => __('ID'),
+  'title' => __('Title'),
+  'owner' => __('Owner'),
+  'updated' => __('Updated')
+);
+$pages_columns = apply_filters('manage_pages_columns', $pages_columns);
+
+// you can not edit these at the moment
+$pages_columns['control_view']   = '';
+$pages_columns['control_edit']   = '';
+$pages_columns['control_delete'] = '';
+
 ?>
 <table id="the-list-x" width="100%" cellpadding="3" cellspacing="3"> 
   <tr> 
-    <th scope="col"><?php _e('ID') ?></th> 
-    <th scope="col"><?php _e('Title') ?></th> 
-    <th scope="col"><?php _e('Owner') ?></th>
-	<th scope="col"><?php _e('Updated') ?></th>
-	<th scope="col"></th> 
-    <th scope="col"></th> 
-    <th scope="col"></th> 
+	<?php foreach($pages_columns as $column_display_name) { ?>
+		<th scope="col"><?php echo $column_display_name; ?></th>
+	<?php } ?>
   </tr> 
 <?php
-if ( isset($_GET['s']) ) {
-foreach ( $posts as $post ) : 
-	$class = ('alternate' != $class) ? 'alternate' : ''; ?>
-  <tr id='page-<?php echo $id; ?>' class='<?php echo $class; ?>'> 
-    <th scope="row"><?php echo $post->ID; ?></th> 
-    <td>
-      <?php echo $pad; ?><?php the_title() ?> 
-    </td> 
-    <td><?php the_author() ?></td>
-    <td><?php echo mysql2date('Y-m-d g:i a', $post->post_modified); ?></td> 
-	<td><a href="<?php the_permalink(); ?>" rel="permalink" class="edit"><?php _e('View'); ?></a></td>
-    <td><?php if ( current_user_can('edit_pages') ) { echo "<a href='post.php?action=edit&amp;post=$id' class='edit'>" . __('Edit') . "</a>"; } ?></td> 
-    <td><?php if ( current_user_can('edit_pages') ) { echo "<a href='post.php?action=delete&amp;post=$id' class='delete' onclick=\"return deleteSomething( 'page', " . $id . ", '" . sprintf(__("You are about to delete the &quot;%s&quot; page.\\n&quot;OK&quot; to delete, &quot;Cancel&quot; to stop."), wp_specialchars(get_the_title('','',0), 1)) . "' );\">" . __('Delete') . "</a>"; } ?></td> 
-  </tr>
-<?php
-endforeach;
-} else {
-	page_rows();
-}
+page_rows($searching, $pages, $pages_columns);
 ?>
 </table> 
-
 <div id="ajax-response"></div>
 
 <?php
 } else {
 ?>
-<p><?php _e('No pages yet.') ?></p>
+<p><?php _e('No pages found.') ?></p>
 <?php
 } // end if ($posts)
 ?> 
