             !(isBaseState(stateName) && isBaseState(currentState)))
         {
             requestedCurrentState = stateName;
-            playStateTransition = playTransition;
-
+            // Don't play transition if we're just getting started
+            // In Flex4, there is no "base state", so if isBaseState() is true
+            // then we're just going into our first real state
+            playStateTransition =  
+                (this is IStateClient2) && isBaseState(currentState) ?
+                false : 
+                playTransition;
             if (initialized)
             {
                 commitCurrentState();

package mx.core
{

import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.display.GradientType;
import flash.display.InteractiveObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.display.Stage;
import flash.display.Graphics;
import flash.events.Event;
import flash.events.EventPhase;
import flash.events.FocusEvent;
import flash.events.IEventDispatcher;
import flash.events.KeyboardEvent;
import flash.geom.Vector3D;
import flash.geom.Matrix3D;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.geom.Rectangle;

import flash.text.TextLineMetrics;
import flash.utils.getQualifiedClassName;


import mx.events.FlexEvent;
import mx.events.MoveEvent;
import mx.events.PropertyChangeEvent;
import mx.events.PropertyChangeEventKind;
import mx.events.ResizeEvent;
import mx.events.StateChangeEvent;
import mx.events.ValidationResultEvent;
import mx.filters.BaseFilter;
import mx.filters.IBitmapFilter;
import mx.geom.CompoundTransform;
import mx.geom.Transform;
import mx.graphics.RoundedRectangle;
import mx.managers.CursorManager;
