diff --git a/ChangeLog b/ChangeLog
index 283e1d29bff5162e6dcc638b98272e7b8b48d307_Q2hhbmdlTG9n..2511dadae3b0a4460508e18ca4cc5b6b36659c39_Q2hhbmdlTG9n 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 ChangeLog for RQL
 =================
 
+	--
+    * fix re-annotation pb: some stinfo keys wasn't properly reinitialized
+      which may cause pb later (at sql generation time for instance)
+	
 2010-06-21  --  0.26.3
     * support for node from having in Select.remove
 
diff --git a/nodes.py b/nodes.py
index 283e1d29bff5162e6dcc638b98272e7b8b48d307_bm9kZXMucHk=..2511dadae3b0a4460508e18ca4cc5b6b36659c39_bm9kZXMucHk= 100644
--- a/nodes.py
+++ b/nodes.py
@@ -19,4 +19,5 @@
 
 This module defines all the nodes we can find in a RQL Syntax tree, except
 root nodes, defined in the `stmts` module.
+"""
 
@@ -22,5 +23,4 @@
 
-"""
 __docformat__ = "restructuredtext en"
 
 from itertools import chain
@@ -861,6 +861,9 @@
             # constant node linked to an uid variable if any
             'constnode': None,
             })
+        # remove optional st infos
+        for key in ('optrelations', 'blocsimplification', 'ftirels'):
+            self.stinfo.pop(key, None)
 
     def add_optional_relation(self, relation):
         try: