This successfully compiles, even though inner is a `&Foo`. ``` rust use std::sync::TaskPool; struct Foo { p: TaskPool, q: uint } impl Foo { fn f(&self) { let inner = self.clone(); self.p.execute(proc() { println!("{}", inner.q); }); } } fn main() {} ``` For a more real example, see https://github.com/sfackler/r2d2/commit/d864a7815135c3277b517d78b2edace9397875e9. It'll cause tests to segfault ~50% of the time.