Messing around just to see what happens. Tried sending 0.0000009 tokens of a token with 6 decimals and it fails (negative number). This has something to do with BigNumber and max value set when issued, so it tries to wrap around and returns a negative number?
I would assume it would try to send 0 and the check is implemented with a <= 0