         // (7) dx/dt = 0 <=> sin(t) / cos(t) = (c * ry) / (a * rx);   
         // (8) dy/dt = 0 <=> sin(t) / cos(t) = (d * ry) / (b * rx);
         
-        if(rx == 0 && ry == 0)
+        if (rx == 0 && ry == 0)
         {
             var pt:Point = new Point(cx, cy);
             pt = matrix.transformPoint(pt);

        // a * x + c1 * y >= 0
        // b * x + d1 * y >= 0
        var s:Point;
        s = solveSystem( a, c1, b, d1, w, h);
        if( s &&
            minX <= s.x && s.x <= maxX && minY <= s.y && s.y <= maxY &&
            a * s.x + c1 * s.x >= 0 &&
            b * s.x + d1 * s.y >= 0 )
            return s;

        // Case 2:
        // a * x + c1 * y >= 0
        // b * x + d1 * y < 0
        s = solveSystem( a, c1, b, d1, w, -h);
        if( s &&
            minX <= s.x && s.x <= maxX && minY <= s.y && s.y <= maxY &&
            a * s.x + c1 * s.x >= 0 &&
            b * s.x + d1 * s.y < 0 )
            return s;

        // Case 3:
        // a * x + c1 * y < 0
        // b * x + d1 * y >= 0
        s = solveSystem( a, c1, b, d1, -w, h);
        if( s &&
            minX <= s.x && s.x <= maxX && minY <= s.y && s.y <= maxY &&
            a * s.x + c1 * s.x < 0 &&
            b * s.x + d1 * s.y >= 0 )
            return s;

        // Case 4:
        // a * x + c1 * y < 0
        // b * x + d1 * y < 0
        s = solveSystem( a, c1, b, d1, -w, -h);
        if( s &&
            minX <= s.x && s.x <= maxX && minY <= s.y && s.y <= maxY &&
            a * s.x + c1 * s.x < 0 &&
            b * s.x + d1 * s.y < 0 )
            return s;

        return null; // No solution.

        {
            // No solution in the following cases since the matrix collapses
            // all points into a line.
            if (b == 0 || c==0)
               return null;

            // (1) w = abs( ax + cy ) <=> w = abs( cy ) <=> w = abs(c)y
