Index: wp-includes/query.php
===================================================================
--- wp-includes/query.php	(revision 15339)
+++ wp-includes/query.php	(working copy)
@@ -2471,51 +2471,54 @@
 		}
 
 		// Put sticky posts at the top of the posts array
-		$sticky_posts = get_option('sticky_posts');
-		if ( $this->is_home && $page <= 1 && is_array($sticky_posts) && !empty($sticky_posts) && !$q['caller_get_posts'] ) {
-			$num_posts = count($this->posts);
-			$sticky_offset = 0;
-			// Loop over posts and relocate stickies to the front.
-			for ( $i = 0; $i < $num_posts; $i++ ) {
-				if ( in_array($this->posts[$i]->ID, $sticky_posts) ) {
-					$sticky_post = $this->posts[$i];
-					// Remove sticky from current position
-					array_splice($this->posts, $i, 1);
-					// Move to front, after other stickies
-					array_splice($this->posts, $sticky_offset, 0, array($sticky_post));
-					// Increment the sticky offset.  The next sticky will be placed at this offset.
-					$sticky_offset++;
-					// Remove post from sticky posts array
-					$offset = array_search($sticky_post->ID, $sticky_posts);
-					unset( $sticky_posts[$offset] );
+		if ( $this->is_home && $page <= 1 && !$q['caller_get_posts'] ) {
+			$sticky_posts = get_option('sticky_posts');
+
+			if ( is_array($sticky_posts) && !empty($sticky_posts) ) {
+				$num_posts = count($this->posts);
+				$sticky_offset = 0;
+				// Loop over posts and relocate stickies to the front.
+				for ( $i = 0; $i < $num_posts; $i++ ) {
+					if ( in_array($this->posts[$i]->ID, $sticky_posts) ) {
+						$sticky_post = $this->posts[$i];
+						// Remove sticky from current position
+						array_splice($this->posts, $i, 1);
+						// Move to front, after other stickies
+						array_splice($this->posts, $sticky_offset, 0, array($sticky_post));
+						// Increment the sticky offset.  The next sticky will be placed at this offset.
+						$sticky_offset++;
+						// Remove post from sticky posts array
+						$offset = array_search($sticky_post->ID, $sticky_posts);
+						unset( $sticky_posts[$offset] );
+					}
 				}
-			}
 
-			// If any posts have been excluded specifically, Ignore those that are sticky.
-			if ( !empty($sticky_posts) && !empty($q['post__not_in']) )
-				$sticky_posts = array_diff($sticky_posts, $q['post__not_in']);
+				// If any posts have been excluded specifically, Ignore those that are sticky.
+				if ( !empty($sticky_posts) && !empty($q['post__not_in']) )
+					$sticky_posts = array_diff($sticky_posts, $q['post__not_in']);
 
-			// Fetch sticky posts that weren't in the query results
-			if ( !empty($sticky_posts) ) {
-				$stickies__in = implode(',', array_map( 'absint', $sticky_posts ));
-				// honor post type(s) if not set to any
-				$stickies_where = '';
-				if ( 'any' != $post_type && '' != $post_type ) {
-					if ( is_array( $post_type ) ) {
-						$post_types = join( "', '", $post_type );
-					} else {
-						$post_types = $post_type;
+				// Fetch sticky posts that weren't in the query results
+				if ( !empty($sticky_posts) ) {
+					$stickies__in = implode(',', array_map( 'absint', $sticky_posts ));
+					// honor post type(s) if not set to any
+					$stickies_where = '';
+					if ( 'any' != $post_type && '' != $post_type ) {
+						if ( is_array( $post_type ) ) {
+							$post_types = join( "', '", $post_type );
+						} else {
+							$post_types = $post_type;
+						}
+						$stickies_where = "AND $wpdb->posts.post_type IN ('" . $post_types . "')";
 					}
-					$stickies_where = "AND $wpdb->posts.post_type IN ('" . $post_types . "')";
-				}
 
-				$stickies = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE $wpdb->posts.ID IN ($stickies__in) $stickies_where" );
-				foreach ( $stickies as $sticky_post ) {
-					// Ignore sticky posts the current user cannot read or are not published.
-					if ( 'publish' != $sticky_post->post_status )
-						continue;
-					array_splice($this->posts, $sticky_offset, 0, array($sticky_post));
-					$sticky_offset++;
+					$stickies = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE $wpdb->posts.ID IN ($stickies__in) $stickies_where" );
+					foreach ( $stickies as $sticky_post ) {
+						// Ignore sticky posts the current user cannot read or are not published.
+						if ( 'publish' != $sticky_post->post_status )
+							continue;
+						array_splice($this->posts, $sticky_offset, 0, array($sticky_post));
+						$sticky_offset++;
+					}
 				}
 			}
 		}
