*fix
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/DefinitionManager.java b/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/DefinitionManager.java
index d389d9c..62bfad1 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/DefinitionManager.java
+++ b/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/DefinitionManager.java
@@ -53,7 +53,7 @@
 	}
 
 	public NamespaceScopeProcessor createProcessor() {
-		return getCoreProcessor();
+		return new NamespaceScopeProcessor(getCoreProcessor());
 	}
 
 	public NamespaceScopeProcessor createNewProcessor() {
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/NamespaceScopeProcessor.java b/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/NamespaceScopeProcessor.java
index be71301..f4c20e1 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/NamespaceScopeProcessor.java
+++ b/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/NamespaceScopeProcessor.java
@@ -19,6 +19,7 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.Stack;
+import java.util.Map.Entry;
 
 import org.eclipse.dltk.tcl.ast.TclCommand;
 import org.eclipse.dltk.tcl.definitions.Command;
@@ -44,6 +45,15 @@
 	public NamespaceScopeProcessor() {
 	}
 
+	// Copy internal data.
+	public NamespaceScopeProcessor(NamespaceScopeProcessor coreProcessor) {
+		this.scopes = new HashSet(coreProcessor.scopes);
+		Map<String, Set<Command>> map = coreProcessor.commands;
+		for (Entry<String, Set<Command>> entry : map.entrySet()) {
+			commands.put(entry.getKey(), new HashSet(entry.getValue()));
+		}
+	}
+
 	public void addScope(Scope scope) {
 		if (scopes.add(scope)) {
 			fillCommandsMap(scope, "");