diff --git wp-includes/class-wp.php wp-includes/class-wp.php
index dc77688..9c50796 100644
--- wp-includes/class-wp.php
+++ wp-includes/class-wp.php
@@ -300,6 +300,8 @@ class WP {
 				$this->query_vars[$var] = $this->extra_query_vars[$var];
 		}
 
+		$this->query_vars['include_sticky'] = true;
+
 		if ( isset($error) )
 			$this->query_vars['error'] = $error;
 
diff --git wp-includes/query.php wp-includes/query.php
index 04286aa..c88e3ae 100644
--- wp-includes/query.php
+++ wp-includes/query.php
@@ -1960,8 +1960,11 @@ class WP_Query {
 				$q['ignore_sticky_posts'] = $q['caller_get_posts'];
 		}
 
-		if ( !isset( $q['ignore_sticky_posts'] ) )
-			$q['ignore_sticky_posts'] = false;
+		if ( ! isset( $q['include_sticky'] ) )
+			$q['include_sticky'] = false;
+
+		if ( ! isset( $q['ignore_sticky_posts'] ) )
+			$q['ignore_sticky_posts'] = ! $q['include_sticky'];
 
 		if ( !isset($q['suppress_filters']) )
 			$q['suppress_filters'] = false;
@@ -2745,23 +2748,25 @@ class WP_Query {
 		}
 
 		// 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['ignore_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 ( $this->is_home && $page <= 1 && ! $q['ignore_sticky_posts'] && $q['include_sticky'] ) {
+			$sticky_posts = get_option( 'sticky_posts' );
+			if ( ! 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] );
+					}
 				}
 			}
 
