*patch from timur.
* tcl internal API filtering feature.
diff --git a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/InterpreterConfig.java b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/InterpreterConfig.java
index 3206b1f..00e8c7e 100644
--- a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/InterpreterConfig.java
+++ b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/InterpreterConfig.java
@@ -4,9 +4,11 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -299,20 +301,23 @@
 
 	public String[] getEnvironmentAsStringsIncluding(
 			EnvironmentVariable[] variables) {
+		Set pressentVars = new HashSet();
 		ArrayList list = new ArrayList();
 		if (variables != null) {
 			for (int i = 0; i < variables.length; i++) {
-				list
-						.add(variables[i].getName() + "="
-								+ variables[i].getValue());
+				String name = variables[i].getName();
+				list.add(name + "=" + variables[i].getValue());
+				pressentVars.add(name);
 			}
 		}
 
 		Iterator it = environment.keySet().iterator();
 		while (it.hasNext()) {
 			String key = (String) it.next();
-			String value = (String) environment.get(key);
-			list.add(key + "=" + value);
+			if (!pressentVars.contains(key)) {
+				String value = (String) environment.get(key);
+				list.add(key + "=" + value);
+			}
 		}
 
 		return (String[]) list.toArray(new String[list.size()]);