      */
     public function translate (dx :Number, dy :Number) :void
     {
-        configure(a, b, c, d, tx + dx, ty + dy);
+        concat(new Matrix(1, 0, 0, 1, dx, dy));
     }
 
     /**

    {
        configure(a*m.a + b*m.c, a*m.b + b*m.d,
                  c*m.a + d*m.c, c*m.b + d*m.d,
                  a*m.tx + b*m.ty, c*m.tx + d*m.ty);
    }

    /**

     */
    public function transformPoint (point :Point) :Point
    {
        return new Point(a*point.x + c*point.y + tx, b*point.x + d*point.y + ty);
    }

    /**
