To interested parties, I changed the [b]if(d <= r1 + r2)[/b] to [b]while(d <= r1 + r2)[/b] and it seems to work a little better. The balls don't seem to stick together. However, I'm still getting some odd jumps in velocity and the deflection angles look wrong sometimes.