--- languages/cpp/cppduchain/declarationbuilder.cpp.orig	2012-04-14 04:54:26.000000000 +0900
+++ languages/cpp/cppduchain/declarationbuilder.cpp	2012-06-08 21:43:19.000000000 +0900
@@ -1231,8 +1231,7 @@
   QList<DUContext*> contexts;
 
   // qlist does not provide convenient stable iterators
-  std::list<Declaration*> worklist(decls.begin(), decls.end());
-  for (std::list<Declaration*>::iterator it = worklist.begin(); it != worklist.end(); ++it) {
+  for (QList<Declaration*>::iterator it = decls.begin(); it != decls.end(); ++it) {
     Declaration * decl = *it;
     if(decl->kind() == Declaration::Namespace && decl->internalContext()) {
       contexts << decl->internalContext();
@@ -1241,7 +1240,7 @@
       if (aliasDecl) {
         QList<Declaration*> importedDecls = currentContext()->findDeclarations(aliasDecl->importIdentifier(), position);
         std::copy(importedDecls.begin(), importedDecls.end(),
-                  std::back_inserter(worklist));
+                  std::back_inserter(decls));
       }
     }
   }