As Rex said, it is impossible to make a copy of an Iterator without destroying it. That said, what is the problem with duplicate
?
var list = List(1,2,3,4,5)
var it1 = list.iterator
it1.next()
val (it1a, it1b) = it1.duplicate
it1 = it1a
var it2 = it1b
it2.next()
println(it1.next())