 
     private function isValidFocusCandidate(o:DisplayObject, g:String):Boolean
     {
+        if (o is IFocusManagerComponent)
+            if (!IFocusManagerComponent(o).focusEnabled)
+                return false;
+
         if (!isEnabledAndVisible(o))
             return false;
 

	                calculateCandidates = true;
    	            // trace("FM added " + o);
    	        }
                o.addEventListener("tabFocusEnabledChange", tabFocusEnabledChangeHandler);
                o.addEventListener("tabIndexChange", tabIndexChangeHandler);
   			}

        }
        

                        _lastFocus = null;
                    }
                    // trace("FM removed " + o);
                    focusableObjects.splice(i, 1);
                    focusableCandidates = [];
                    calculateCandidates = true;                 
                    break;
                }
            }
            o.removeEventListener("tabFocusEnabledChange", tabFocusEnabledChangeHandler);
            o.removeEventListener("tabIndexChange", tabIndexChangeHandler);
        }
        removeFocusables(o, false);
    }
