diff --git a/src/stdio/src/printf.rs b/src/stdio/src/printf.rs
index da12b07c75413d3154c7e96ff3c866afd6b53777..813213f4dcf9377042724deb0d4b70cc85f05b43 100644
--- a/src/stdio/src/printf.rs
+++ b/src/stdio/src/printf.rs
@@ -97,11 +97,11 @@ pub unsafe fn printf<W: Write>(mut w: W, format: *const c_char, mut ap: VaList)
                 '#' => Ok(()),
                 '0'...'9' => Ok(()),
                 _ => Ok(()),
-            }.expect("Error writing!")
+            }.map_err(|_| return -1).unwrap()
         } else if b == b'%' {
             found_percent = true;
         } else {
-            w.write_u8(b).expect("Error writing char!");
+            w.write_u8(b).map_err(|_| return -1).unwrap()
         }
     }