         else if (point.x > rect.x + rect.width)  {  out.x = rect.x + rect.width;  }
         else  {  out.x = point.x;  }
 
-        if (point.y < rect.top)  {  out.y = rect.top;  }
+        if (point.y < rect.y)  {  out.y = rect.y;  }
         else if (point.y > rect.y + rect.height)  {  out.y = rect.y + rect.height;  }
         else  {  out.y = point.y;  }
 

     * @return  The object containing the multiplied rectangle.
     */
    public static function multiply(
        rect:Object, factor:Number, out:Object = null):Object
    {
        if (!out) out = new Rectangle();
        out.x = rect.x * factor;

     * @return  The object containing the calculated Matrix.
     */
    public static function getTransform(
        source:*, target:*,
        out:Matrix = null):Matrix
    {
        if (source.width == 0 || source.height == 0) return null;
        if (!out) out = new Matrix();

        out.tx = target.x - source.x;
        out.ty = target.y - source.y;
        out.a = target.width / source.width;
        out.b =
        out.c = 0;
