Umm i don't understand very well the problem. could you post an executable so that tomorrow i can try it at work? Maybe with the latest sources.
I wont be able to compile but maybe i can find the problem the same.

Well maybe you could check that 0.6 if it's really size+size.. It could be that it's wrong and when you scale v by d you get a value too large that makes your circle bump on the other. (shooting in the dark here )

Bye!