Index: wp-includes/class-wp-post.php
===================================================================
--- wp-includes/class-wp-post.php	(revision 0)
+++ wp-includes/class-wp-post.php	(revision 0)
@@ -0,0 +1,56 @@
+<?php
+
+class WP_Post {
+	public $ID;
+	public $post_author;
+	public $post_date;
+	public $post_date_gmt;
+	public $post_content;
+	public $post_title;
+	public $post_excerpt;
+	public $post_status;
+	public $comment_status;
+	public $ping_status;
+	public $post_password;
+	public $post_name;
+	public $to_ping;
+	public $pinged;
+	public $post_modified;
+	public $post_modified_gmt;
+	public $post_content_filtered;
+	public $post_parent;
+	public $guid;
+	public $menu_order;
+	public $post_type;
+	public $post_mime_type;
+	public $comment_count;
+	public $filter;
+
+	public function __set( $name, $value ) {
+		if ( property_exists('WP_Post', $name) ) {
+			$this->$name = $value;
+			return $this->$name;
+		}
+
+		return false;
+	}
+
+	public static function get_instance( $post_data ) {
+		$post = new WP_Post();
+
+		foreach ( $post_data as $k=>$v ) {
+			if ( property_exists('WP_Post', $k) ) {
+				$post->$k = $v;
+			}
+		}
+
+		return $post;
+	}
+
+	// wrapper for get_the_title()
+	// the idea is to add wrappers for the other functions related
+	// to displaying post info as well
+	public function get_the_title() {
+		return get_the_title($this);
+	}
+}
Index: wp-includes/query.php
===================================================================
--- wp-includes/query.php	(revision 21271)
+++ wp-includes/query.php	(working copy)
@@ -2660,6 +2660,11 @@
 		if ( !$q['suppress_filters'] )
 			$this->posts = apply_filters_ref_array('posts_results', array( $this->posts, &$this ) );
 
+		// Convert posts to WP_Post objects
+		if ( is_array($this->posts) ) {
+			$this->posts = array_map(array( 'WP_Post', 'get_instance' ), $this->posts );
+		}
+
 		if ( !empty($this->posts) && $this->is_comment_feed && $this->is_singular ) {
 			$cjoin = apply_filters_ref_array('comment_feed_join', array( '', &$this ) );
 			$cwhere = apply_filters_ref_array('comment_feed_where', array( "WHERE comment_post_ID = '{$this->posts[0]->ID}' AND comment_approved = '1'", &$this ) );
Index: wp-settings.php
===================================================================
--- wp-settings.php	(revision 21271)
+++ wp-settings.php	(working copy)
@@ -142,6 +142,7 @@
 require( ABSPATH . WPINC . '/nav-menu.php' );
 require( ABSPATH . WPINC . '/nav-menu-template.php' );
 require( ABSPATH . WPINC . '/admin-bar.php' );
+require( ABSPATH . WPINC . '/class-wp-post.php' );
 
 // Load multisite-specific files.
 if ( is_multisite() ) {
