Bug 94757 - highlight off by one
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java
index 863e903..8851a84 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java
@@ -81,6 +81,7 @@
 		if (enabled) {
 			try {
                 ComponentHelper helper= ComponentHelper.getComponentHelper(getProjectNode().getProject());
+                ((AntModel) getAntModel()).removeDefinerTasks(getIdentifier(), helper.getAntTypeTable());
                 Hashtable old= new Hashtable(helper.getAntTypeTable());
 				getTask().maybeConfigure();
 				getTask().execute();
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java
index c5ad0f7..b56d3b5 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java
@@ -21,6 +21,7 @@
 import java.util.Collection;
 import java.util.Enumeration;
 import java.util.HashMap;
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -1385,20 +1386,26 @@
             return;
         }
         Iterator iter= fDefinerNodeIdentifierToDefinedTasks.keySet().iterator();
+        ComponentHelper helper= ComponentHelper.getComponentHelper(fProjectNode.getProject());
         while (iter.hasNext()) {
             String key = (String) iter.next();
             if (fCurrentNodeIdentifiers.get(key) == null) {
-                ComponentHelper helper= ComponentHelper.getComponentHelper(fProjectNode.getProject());
-                List tasks= (List) fDefinerNodeIdentifierToDefinedTasks.get(key);
-                Iterator iterator= tasks.iterator();
-                while (iterator.hasNext()) {
-                    String taskName = (String) iterator.next();
-                    helper.getAntTypeTable().remove(taskName);    
-                }
+                removeDefinerTasks(key, helper.getAntTypeTable());
             }
         }
     }
 
+    protected void removeDefinerTasks(String definerIdentifier, Hashtable typeTable) {
+        if (fDefinerNodeIdentifierToDefinedTasks == null) {
+            return;
+        }
+        List tasks= (List) fDefinerNodeIdentifierToDefinedTasks.get(definerIdentifier);
+        Iterator iterator= tasks.iterator();
+        while (iterator.hasNext()) {
+            typeTable.remove(iterator.next());    
+        }
+    }
+
     /* (non-Javadoc)
      * @see org.eclipse.ant.internal.ui.model.IAntModel#addComment(int, int, int)
      */