Weird timing issue, coming back from a subroutine and restoring S registers, when you saved the R registers (had that happen on a robot project I worked on years ago, every so often things would just flake out, it wasn't until a peer review by other engineers that it got noticed) . In other words software sometimes can have a horrible bug that doesn't get noticed until much later, because it sort of looks right. Oh and I may be way off base on these guesses. But I have seen some really obscure bugs that work most of the time, but every so often all hell breaks loose.