I can't see how it could get it wrong, the code that deals with this is at the end of route.c and I can't see what could be wrong. Is this the same route that has 10 miles left at the endpoint? Are the 'angles' of the incoming and outgoing edge pretty much the way you drew them? i.e. about 280-290 degrees incoming and 5-15 degrees outgoing?

10 - 285 = -275. As -275 is less than -180 we add 360 = 85m which is clearly a right turn. Now precalculated bearings are between -180 and 180, then it would be calculated as 10 - -75 = 85. Same difference. So this should be right and maybe the only way left is if the indexing is off, but that is hard to believe in itself (as it would then always be wrong).
_________________________
40GB - serial #40104051 gpsapp