             return INFINITE; // the two shall never meet
         } else {
             var r :Number = rray / rplane;
-            return s.add(this.multiply(r));
+            return s.add(this.scale(r));
         }
     }
     

     * Returns a new vector that is the result of multiplying the current vector
     * by the specified scalar.
     */
    public function multiply (value :Number) :Vector3
    {
        return new Vector3(x * value, y * value, z * value);
    }
        
    /**

    /** Creates a new vector. All three X, Y, Z parameters are optional. */
    public function Vector3 (x :Number = 0, y :Number = 0, z :Number = 0)
    {
        set(x, y, z);
    }

    /** Assigns values to the three parameters of this vector. */
    public function set (x :Number, y :Number, z :Number) :void
    {
        this.x = x;
        this.y = y;
        this.z = z;
