 
         scaleXChanged = true;
         notifyElementLayerChanged();
-
+        invalidateProperties();
         // Parent layout takes transform into account
         invalidateParentSizeAndDisplayList();
-
-        // TODO EGeorgie: apply the transform properties in commitProperties
-        // instead of in setActualSize, setActualPosition.
-        // invalidateProperties();
     }
 
     //----------------------------------

     */
    protected function computeMatrix(actualMatrix:Boolean):Matrix
    {
        if (_matrix)
            return TransformUtil.isDeltaIdentity(_matrix) ? null : _matrix;

        if (_scaleX == 1 && _scaleY == 1 && _rotation == 0)
            return null;

        // TODO EGeorgie: share the duplicated code with the TransformUtil.applyTransforms?
        var m:Matrix = new Matrix();
        m.translate(-_transformX, -_transformY);
        m.scale(_scaleX, _scaleY);
        m.rotate(TransformUtil.rotationInRadians(_rotation));
        m.translate(_transformX, _transformY);
        return m;
    }

    /**

        _displayObject = value;
        dispatchPropertyChangeEvent("displayObject", oldValue, value);

        // We need to apply the display object related properties.
        // TODO EGeorgie: add an option 'display object changed'
        xChanged = yChanged = rotationChanged = true;
        invalidateProperties();

        // New display object, we need to redraw
        invalidateDisplayList();
    }

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