diff --git a/src/platform/src/alloc/dlmalloc.rs b/src/platform/src/allocator/dlmalloc.rs
similarity index 100%
rename from src/platform/src/alloc/dlmalloc.rs
rename to src/platform/src/allocator/dlmalloc.rs
diff --git a/src/platform/src/alloc/ralloc.rs b/src/platform/src/allocator/ralloc.rs
similarity index 100%
rename from src/platform/src/alloc/ralloc.rs
rename to src/platform/src/allocator/ralloc.rs
diff --git a/src/platform/src/lib.rs b/src/platform/src/lib.rs
index ebc77989e0f5c9ce0048c4921688371221dea504..5d95b235f1207cc4544b0611246fc98027909e92 100644
--- a/src/platform/src/lib.rs
+++ b/src/platform/src/lib.rs
@@ -1,8 +1,11 @@
 #![no_std]
 #![allow(non_camel_case_types)]
+#![feature(alloc)]
 #![feature(allocator_api)]
 //TODO #![feature(thread_local)]
 
+extern crate alloc;
+
 #[cfg(all(not(feature = "no_std"), target_os = "linux"))]
 #[macro_use]
 extern crate sc;
@@ -11,15 +14,15 @@ extern crate sc;
 #[macro_use]
 pub extern crate syscall;
 
-pub use alloc::*;
+pub use allocator::*;
 
 #[cfg(not(feature = "ralloc"))]
-#[path = "alloc/dlmalloc.rs"]
-mod alloc;
+#[path = "allocator/dlmalloc.rs"]
+mod allocator;
 
 #[cfg(feature = "ralloc")]
-#[path = "alloc/ralloc.rs"]
-mod alloc;
+#[path = "allocator/ralloc.rs"]
+mod allocator;
 
 pub use sys::*;
 
diff --git a/src/platform/src/redox/mod.rs b/src/platform/src/redox/mod.rs
index 841fd17202cdc881953fc934135f3d7fd67ef16a..a6db080e005eb684edea23c79bd21194600604a0 100644
--- a/src/platform/src/redox/mod.rs
+++ b/src/platform/src/redox/mod.rs
@@ -23,7 +23,7 @@ pub fn e(sys: Result<usize, syscall::Error>) -> usize {
 }
 
 pub fn brk(addr: *mut c_void) -> *mut c_void {
-    unsafe { syscall::brk(addr as usize) } as *mut c_void
+    unsafe { syscall::brk(addr as usize).unwrap_or(0) as *mut c_void }
 }
 
 pub fn chdir(path: *const c_char) -> c_int {