There's a little mistake in your code, somehow(don't know really what poll does) you have to keep the if statement, or else repeated movements don't work.
Well I beg to differ about it being a bug in my code ;-)
It's more an issue of the library. Though there really oughtn't
be any difference between how the two run. It might actually
be the pump, did you try moving it into the until loop as the comment
suggested might be required?