It's not a bug, it's undefined.  See http://www.scala-lang.org/api/2.10.3/index.html#scala.collection.Iterator --

> Reuse: After calling [take], one should discard the iterator it was called on, and use only the iterator that was returned. Using the old iterator is undefined, subject to change, and may result in changes to the new iterator as well.