      *  @private
      *  Create radio button group if it does not exist
      *  and add the instance to the group.
+     * 
+     *  @throws ArgumentError If the radio button has a different parent than
+     *  the other radio buttons already in the group.
      */
     private function addToGroup():FxRadioButtonGroup
     {        
         var g:FxRadioButtonGroup = group; // Trigger getting the group
         if (g)
         {
-            g.addInstance(this);
-
-            // If this button is selected, then change the group selection.            
-            if (selected && g.selection != this)
-                g.setSelection(this, false);
-
-            // If this button is joining a disabled group, then disable the button.
-            // Don't use the enabled setter so that _buttonEnabled remains untouched.
-            setEnabled();           
+            if (g.numRadioButtons && g.getRadioButtonAt(0).parent != parent)
+            {
+                throw ArgumentError(
+                    resourceManager.getString("components", "rbMustHaveSameParent"));
+            }
+                        
+            g.mx_internal::addInstance(this);
         }
         
         return g;

                    // Special automaticRadioButtonGroup slot to hold generated
                    // radio button groups.  Shared with halo so prefix
                    // groupName to differentiate.
                    if (document.automaticRadioButtonGroups &&
                        document.automaticRadioButtonGroups[autoGroupIndex])
                    {
                        g = FxRadioButtonGroup(
                            document.automaticRadioButtonGroups[autoGroupIndex]);
                    }
                }
                if (!g)
                {
                    g = new FxRadioButtonGroup(IFlexDisplayObject(document));
                    
                    if (!document.automaticRadioButtonGroups)
                        document.automaticRadioButtonGroups = [];
                    document.automaticRadioButtonGroups[autoGroupIndex] = g;                        
                }
                else if (!(g is FxRadioButtonGroup))
                {

     */
    private function setThis():void
    {
        if (!mx_internal::radioButtonGroup)
            addToGroup();

        var g:FxRadioButtonGroup = group;
        if (g.selection != this)
            g.mx_internal::setSelection(this);
    }

   /**
     *  @private
     *  The radio button group and the radio button each have enabled properties.
     *  The radio button component is enabled if the group is enabled and the button
     *  itself is enabled.
     */
    override public function get enabled():Boolean
    {
        return super.enabled && 
                    (!mx_internal::radioButtonGroup || 
                        mx_internal::radioButtonGroup.enabled);
    }
    
    //--------------------------------------------------------------------------
