             else
             {
                 _currentStateChanged = true;
-
-                // We need to wait until we're fully initialized before commiting
-                // the current state. Otherwise children may not be created
-                // (if we're inside a deferred instantiation container), or
-                // bindings may not be fired yet.
-                addEventListener(FlexEvent.CREATION_COMPLETE,
-                                 creationCompleteHandler);
+                invalidateProperties();
             }
         }
     }

            errorStringChanged = false;
            setBorderColorForErrorString();
        }

    }

    //--------------------------------------------------------------------------

                _currentStateDeferred = null;
                currentState = newState;
            }
           
            oldScaleX = scaleX;
            oldScaleY = scaleY;
        }
        
        // Typically state changes occur immediately, but during
        // component initialization we defer until commitProperties to 
        // reduce a bit of the startup noise.
        if (_currentStateChanged && !initialized)
        {
            _currentStateChanged = false;
            commitCurrentState();
        }

        if (x != oldX || y != oldY)
