[183699] The variable of the same name can be inserted
diff --git a/org.eclipse.wst.common.snippets/src/org/eclipse/wst/common/snippets/internal/editors/VariableItemEditor.java b/org.eclipse.wst.common.snippets/src/org/eclipse/wst/common/snippets/internal/editors/VariableItemEditor.java
index 23f5586..a25ad75 100644
--- a/org.eclipse.wst.common.snippets/src/org/eclipse/wst/common/snippets/internal/editors/VariableItemEditor.java
+++ b/org.eclipse.wst.common.snippets/src/org/eclipse/wst/common/snippets/internal/editors/VariableItemEditor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.wst.common.snippets.internal.editors;
 
-import com.ibm.icu.text.Collator;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -65,6 +64,8 @@
 import org.eclipse.wst.common.snippets.internal.util.Sorter;
 import org.eclipse.wst.common.snippets.internal.util.StringUtils;
 
+import com.ibm.icu.text.Collator;
+
 /**
  * A snippet item editor that can define snippet variables
  */
@@ -285,8 +286,9 @@
 
 			public void widgetSelected(SelectionEvent e) {
 				int i = 1;
-				String newId = "name_" + i++; //$NON-NLS-1$
-				while (fTableViewer.getColumnData()[0].keySet().contains(newId)) {
+				String newId = "name_" + i; //$NON-NLS-1$
+				// https://bugs.eclipse.org/bugs/show_bug.cgi?id=183699 - check both ID and visible name
+				while (fTableViewer.getColumnData()[0].containsKey(newId)||fTableViewer.getColumnData()[0].containsValue(newId)) {
 					newId = "name_" + i++; //$NON-NLS-1$
 				}
 				fTableViewer.getColumnData()[0].put(newId, newId);