I like it when, after a long session of troubleshooting and various fixes, it turns out it was a simple error somewhere all along. You get a lot of improvements done in the design that way, since you tend to find a lot of edge cases and minor mistakes and get them fixed as part of the troubleshooting.
Kinda frustrating process though, while still searching.
Edit: BTW, nice work!