             if (!o.visible) 
                 return false;
             o = o.parent;
+
+            // if no parent, then not on display list
+            if (!o)
+                return false;
         }
         return true;
     }

    /**
     *  @private
     */
    private function creationCompleteHandler(event:FlexEvent):void
    {
        var o:DisplayObject = DisplayObject(form);

            // trace("tabHandled by " + this);
            setFocusToNextObject(event);

            // if we changed focus or if we're the main app
            // eat the event
			if (focusChanged || sm == sm.getTopLevelRoot())
            	event.preventDefault();
        }
    }
