Missing 'break' statement.  It is not OK to leave out the break statement just because it's the 'default' case or even because it happens to be the last case.  There is nothing that guarantees that the 'default' case will always be last.  If someone adds a case after this then you'll have another very subtle bug where we fall through from one case to another.

(yes, it's sketchy coding style to have another case after the 'default' case but there's nothing syntactically wrong with it so you shouldn't leave out the break).