That is a problem:

```
object PFTest extends App {
  var witness = 0
  def guard(x: String) = {
    witness += 1
    x == "hello"
  }

  def test(str: String) = {
    witness = 0
    val res = Some(str) collect {
      case x if guard(x) => "ok"
    }

    println(res)
    println(witness)
  }

  test("hello")
  test("not hello")
}
```

Output:
```
Some(ok)
1
None
1
```

(Scala 2.11.0-RC3)