Index: /Users/denis/Sites/sem-pro/wp-includes/query.php
===================================================================
--- /Users/denis/Sites/sem-pro/wp-includes/query.php	(revision 999)
+++ /Users/denis/Sites/sem-pro/wp-includes/query.php	(working copy)
@@ -2369,11 +2369,13 @@
 	 */
 	function the_post() {
 		global $post;
-		$this->in_the_loop = true;
+		global $wp_the_query;
+		if ( $this === $wp_the_query )
+			$this->in_the_loop = true;
 		$post = $this->next_post();
 		setup_postdata($post);
 
-		if ( $this->current_post == 0 ) // loop has just started
+		if ( $this->current_post == 0 && $this === $wp_the_query ) // loop has just started
 			do_action('loop_start');
 	}
 
@@ -2389,15 +2391,18 @@
 	 * @return bool True if posts are available, false if end of loop.
 	 */
 	function have_posts() {
+		global $wp_the_query;
 		if ($this->current_post + 1 < $this->post_count) {
 			return true;
 		} elseif ($this->current_post + 1 == $this->post_count && $this->post_count > 0) {
-			do_action('loop_end');
+			if ( $this === $wp_the_query )
+				do_action('loop_end');
 			// Do some cleaning up after the loop
 			$this->rewind_posts();
 		}
 
-		$this->in_the_loop = false;
+		if ( $this === $wp_the_query )
+			$this->in_the_loop = false;
 		return false;
 	}
 
