diff --git a/src/lib/IO.rs b/src/lib/IO.rs
index 60416ab1e77..c0ae2c2f459 100644
--- a/src/lib/IO.rs
+++ b/src/lib/IO.rs
@@ -492,7 +492,7 @@ fn string_writer() -> str_writer {
     let mutable_byte_buf buf = @rec(mutable buf = b, mutable pos = 0u);
     state obj str_writer_wrap(writer wr, mutable_byte_buf buf) {
         fn get_writer() -> writer {ret wr;}
-        fn get_str() -> str {ret Str.unsafe_from_mutable_bytes(buf.buf);}
+        fn get_str() -> str {ret Str.unsafe_from_bytes(buf.buf);}
     }
     ret str_writer_wrap(new_writer(byte_buf_writer(buf)), buf);
 }
diff --git a/src/lib/Str.rs b/src/lib/Str.rs
index 3886ee19164..ba0d45de529 100644
--- a/src/lib/Str.rs
+++ b/src/lib/Str.rs
@@ -139,15 +139,6 @@ fn unsafe_from_bytes(vec[mutable? u8] v) -> str {
     ret rustrt.str_from_vec(v);
 }
 
-// FIXME even temp-er thing; rustc can use "unsafe_from_bytes" above
-fn unsafe_from_mutable_bytes(vec[mutable u8] mv) -> str {
-    let vec[u8] v = vec();
-    for (u8 b in mv) {
-        v += vec(b);
-    }
-    ret rustrt.str_from_vec(v);
-}
-
 fn unsafe_from_byte(u8 u) -> str {
     ret rustrt.str_from_vec(vec(u));
 }