             {
                 // The full width of the callout is before the owner
                 // All arrow directions are ArrowDirection.RIGHT x=(width - arrow.width)
-                registrationPoint.x = -width;
+                registrationPoint.x = -calloutWidth;
                 break;
             }
             case CalloutPosition.START:

                case CalloutPosition.MIDDLE:
                case CalloutPosition.END:
                {
                    actualHorizontalPosition = (spaceRight > spaceLeft) ? CalloutPosition.AFTER : CalloutPosition.BEFORE;
                    break;
                }
                default:

    {
        super.commitProperties();
        
        // Compute actual positions when using AUTO
        commitAutoPosition();
        
        // Compute max size based on actual positions
        commitMaxSize();
        
        // Invalidate skin size to use calloutMaxWidth and calloutMaxHeight
        if (!isMaxSizeSet)
            skin.invalidateSize();

        if (arrow)
        {
