Update to rust master
diff --git a/src/lib.rs b/src/lib.rs
index 2a8d5b7..3686940 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -221,9 +221,9 @@
 #![doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk.png",
        html_favicon_url = "http://www.rust-lang.org/favicon.ico",
        html_root_url = "http://doc.rust-lang.org/rand/")]
-#![feature(core, os, path, io)]
+#![feature(core, os, old_path, old_io)]
 
-#![cfg_attr(test, feature(test, std_misc))]
+#![cfg_attr(test, feature(test))]
 
 extern crate core;
 #[cfg(test)] #[macro_use] extern crate log;
diff --git a/src/os.rs b/src/os.rs
index 5b0953a..3e1959c 100644
--- a/src/os.rs
+++ b/src/os.rs
@@ -352,7 +352,7 @@
     use std::sync::mpsc::channel;
     use Rng;
     use OsRng;
-    use std::thread::Thread;
+    use std::thread;
 
     #[test]
     fn test_os_rng() {
@@ -373,23 +373,23 @@
             let (tx, rx) = channel();
             txs.push(tx);
 
-            Thread::spawn(move|| {
+            thread::spawn(move|| {
                 // wait until all the tasks are ready to go.
                 rx.recv().unwrap();
 
                 // deschedule to attempt to interleave things as much
                 // as possible (XXX: is this a good test?)
                 let mut r = OsRng::new().unwrap();
-                Thread::yield_now();
+                thread::yield_now();
                 let mut v = [0u8; 1000];
 
                 for _ in 0..100 {
                     r.next_u32();
-                    Thread::yield_now();
+                    thread::yield_now();
                     r.next_u64();
-                    Thread::yield_now();
+                    thread::yield_now();
                     r.fill_bytes(&mut v);
-                    Thread::yield_now();
+                    thread::yield_now();
                 }
             });
         }