port to Rust 0.11