fn main() {
    struct foo {
      _x: comm::Port<()>,
      drop {}
    }

    fn foo(x: comm::Port<()>) -> foo {
        foo {
            _x: x
        }
    }
   
    let x = ~mut Some(foo(comm::Port()));

    do task::spawn |move x| { //~ ERROR not a sendable value
        let mut y = None;
        *x <-> y;
        log(error, y);
    }
}
