Index: wp-includes/class-wp-xmlrpc-server.php
===================================================================
--- wp-includes/class-wp-xmlrpc-server.php	(revision 23185)
+++ wp-includes/class-wp-xmlrpc-server.php	(working copy)
@@ -2467,31 +2467,28 @@
 
 		do_action('xmlrpc_call', 'wp.getPageList');
 
-		// Get list of pages ids and titles
-		$page_list = $wpdb->get_results("
-			SELECT ID page_id,
-				post_title page_title,
-				post_parent page_parent_id,
-				post_date_gmt,
-				post_date,
-				post_status
-			FROM {$wpdb->posts}
-			WHERE post_type = 'page'
-			ORDER BY ID
-		");
-
-		// The date needs to be formatted properly.
-		$num_pages = count($page_list);
-		for ( $i = 0; $i < $num_pages; $i++ ) {
-			$page_list[$i]->dateCreated = $this->_convert_date(  $page_list[$i]->post_date );
-			$page_list[$i]->date_created_gmt = $this->_convert_date_gmt( $page_list[$i]->post_date_gmt, $page_list[$i]->post_date );
-
-			unset($page_list[$i]->post_date_gmt);
-			unset($page_list[$i]->post_date);
-			unset($page_list[$i]->post_status);
+		$pages = get_posts( array('post_type' => 'page', 'post_status' => 'any', 'numberposts' => $num_pages) );
+		$num_pages = count($pages);
+		
+		$pages_struct = array();
+		// If we have pages, put together their info.
+		if ( $num_pages >= 1 ) {
+			foreach ( $pages as $page ) {
+				if ( current_user_can( 'edit_page', $page->ID ) ) {
+					$current_page_with_all_details = $this->_prepare_page( $page );
+					$current_page = new stdClass();
+					$current_page->page_id = $current_page_with_all_details['page_id'];
+					$current_page->page_title = $current_page_with_all_details['title'];
+					$current_page->page_parent_id = $current_page_with_all_details['wp_page_parent_id'];
+					$current_page->post_status = $current_page_with_all_details['page_status'];
+					$current_page->dateCreated = $current_page_with_all_details['dateCreated'];
+					$current_page->date_created_gmt = $current_page_with_all_details['date_created_gmt'];
+					$pages_struct[] = $current_page;
+				}
+			}
 		}
-
-		return($page_list);
+		
+		return $pages_struct;
 	}
 
 	/**
