Index: includes/database/query.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database/query.inc,v
retrieving revision 1.59
diff -u -p -r1.59 query.inc
--- includes/database/query.inc	15 Dec 2010 06:52:54 -0000	1.59
+++ includes/database/query.inc	22 Dec 2010 00:02:00 -0000
@@ -1540,6 +1540,12 @@ class DatabaseCondition implements Query
   protected $changed = TRUE;
 
   /**
+   * The query to which this object was compiled. This ensures that a condition
+   * compiled for a certain query will be recompiled for a different query.
+   */
+ protected $queryPlaceholder = NULL;
+
+  /**
    * Constructs a DataBaseCondition object.
    *
    * @param string $conjunction
@@ -1636,7 +1642,7 @@ class DatabaseCondition implements Query
    * Implements QueryConditionInterface::compile().
    */
   public function compile(DatabaseConnection $connection, QueryPlaceholderInterface $queryPlaceholder = NULL) {
-    if ($this->changed) {
+    if ($this->changed || $this->queryPlaceholder != $queryPlaceholder) {
       $condition_fragments = array();
       $arguments = array();
 
@@ -1703,6 +1709,7 @@ class DatabaseCondition implements Query
       }
 
       $this->changed = FALSE;
+      $this->queryPlaceholder = $queryPlaceholder;
       $this->stringVersion = implode($conjunction, $condition_fragments);
       $this->arguments = $arguments;
     }
