Hmn, I thought that looked wrong, but it worked at the time.

I am at a loss now. This is the meat of it. Can anyone see what I might be doing wrong?
Code:

//moment of inertria, I = 2/5MR^2
moment_of_inertia = (2/5) * my.mass* pow(radius,2);
.
.
//distance_from_centre, centre of object to point hit
vec_diff(temp, my.x, target);
distance_from_centre = vec_length(temp);
.
.
//Force, velocity * mass
vec_set(temp, my.velocity);
vec_scale(temp, my.mass);
vec_set(force, temp);


//torque = force * distance_from_centre;
vec_set(temp, force);
vec_scale(temp, distance_from_centre);
vec_set(torque,temp);
.
.
//rot_a = torque/moment_of_inertia
if(moment_of_inertia) //don't divide by zero
{
rot_a.pan = torque.pan / moment_of_inertia;
rot_a.tilt = torque.tilt / moment_of_inertia;
rot_a.roll = torque.roll / moment_of_inertia;
}
.
.
//convert from radians to degrees
vec_set(temp,rot_a);
vec_scale(temp, 57.296);
vec_set(angular_momentum_change,temp);
.
.
//angular_momentum_change = your_angular_formula * sin(theta)
//not confident about this at all, though I knkow sin(180-dot_product) was correct for theta in the linear equation
vec_scale(angular_momentum_change, sin(180 - dot_product));
.
.
//Now add that to the ship's angular velocity
ang_add(my.ROT_VELOCITY, angular_momentum_change);
.