     }
 
     /**
-     * Find the index of the specified entry key from the raw list.
+     * Find the index of the specified entry key from the raw or filtered list.
      */
-    protected function findKeyIndex (key :Object) :int
+    protected function findKeyIndex (key :Object, raw :Boolean = true) :int
     {
-        for (var ii :int = 0; ii < _data.list.length; ii++) {
-            if (Util.equals(key, DSet_Entry(_data.list.getItemAt(ii)).getKey())) {
+        var list :IList = raw ? _data.list : _data;
+        for (var ii :int = 0; ii < list.length; ii++) {
+            if (Util.equals(key, DSet_Entry(list.getItemAt(ii)).getKey())) {
                 return ii;
             }
         }

    public function refresh () :void
    {
        _data.refresh();
    }

    /**

import mx.core.ScrollPolicy;

import mx.collections.ArrayCollection;
import mx.collections.IList;
import mx.collections.Sort;

import mx.controls.List;
