BUG: Boolean assignment allowed writing to 0-sized array

This was because of the assumption that broadcasting works
if the dimension is not > 1, but correct is != 1.

Adepted from a patch provided by prossahl.

Closes gh-3458.