                             }
                             else
                             {
-                                g.moveTo(chartLocalPts.x + tipData.width,
-                                         chartLocalPts.y + tipData.height / 2);
+								if(layoutDirection == LayoutDirection.RTL)
+								{
+									g.moveTo(chartLocalPts.x - tipData.width,
+										chartLocalPts.y + tipData.height / 2);
+								}
+								else
+								{
+									g.moveTo(chartLocalPts.x + tipData.width,
+										chartLocalPts.y + tipData.height / 2);
+								}
                                 g.lineTo(tipData.x,
                                          chartLocalPts.y + tipData.height / 2);
                                 g.lineTo(tipData.x, tipData.y);

import mx.core.FlexShape;
import mx.core.IDataRenderer;
import mx.core.IFlexDisplayObject;
import mx.core.IUIComponent;
import mx.core.UIComponent;
import mx.core.mx_internal;
import mx.effects.Parallel;

                pts.x = tipData.px;
                pts.y = tipData.py;
                localPts = globalToLocal(pts);
                if(layoutDirection == LayoutDirection.RTL)
					tipData.tip.move(localPts.x - tipData.width, localPts.y);
				else
					tipData.tip.move(localPts.x, localPts.y);
              
                if (showTarget)
                {   
