¿Cuál es la forma correcta de eliminar elementos de un mapa mutable de escala utilizando un predicado?

¿Cómo hacer eso sin crear nuevas colecciones? ¿Hay algo mejor que esto?

val m = scala.collection.mutable.Map[String, Long]("1" -> 1, "2" -> 2, "3" -> 3, "4" -> 4)
m.foreach(t => if (t._2 % 2 == 0) m.remove(t._1))
println(m)

PD en Scala 2.8

Respuestas a la pregunta(3)

Su respuesta a la pregunta