diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index a6a05895899848316028d1c251820bafb20f5f9e..ce61055d8b723ea6cce5f5580a636d897ce2be10 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2006-10-29  Paolo Carlini  <pcarlini@suse.de>
+
+	* src/debug.cc (_Safe_sequence_base::_M_revalidate_singular): Fix
+	pasto, advance __iter only once per iteration.
+
 2006-10-29  Paolo Carlini  <pcarlini@suse.de>
 	
 	PR libstdc++/29520
diff --git a/libstdc++-v3/src/debug.cc b/libstdc++-v3/src/debug.cc
index c43acd6e727528099d76e3e4d01df5ab68d3afbb..46c6c14810f310409d07f45437fca713c136c5ba 100644
--- a/libstdc++-v3/src/debug.cc
+++ b/libstdc++-v3/src/debug.cc
@@ -146,23 +146,18 @@ namespace __gnu_debug
 	  __old->_M_attach(0, true);
       }
   }
-  
-  void 
+
+  void
   _Safe_sequence_base::
   _M_revalidate_singular()
   {
-    _Safe_iterator_base* __iter;
-    for (__iter = _M_iterators; __iter; __iter = __iter->_M_next)
-      {
-	__iter->_M_version = _M_version;
-	__iter = __iter->_M_next;
-      }
-    
-    for (__iter = _M_const_iterators; __iter; __iter = __iter->_M_next)
-      {
-	__iter->_M_version = _M_version;
-	__iter = __iter->_M_next;
-      }
+    for (_Safe_iterator_base* __iter = _M_iterators; __iter;
+	 __iter = __iter->_M_next)
+      __iter->_M_version = _M_version;
+
+    for (_Safe_iterator_base* __iter2 = _M_const_iterators; __iter2;
+	 __iter2 = __iter2->_M_next)
+      __iter2->_M_version = _M_version;
   }
 
   void