diff --git a/src/size.rs b/src/size.rs
index c8a57c6895c2c867b078240b2b1e27a56c39a4d1..2cca756efe05a7938f3b6d482f3f35fc31f30eaf 100644
--- a/src/size.rs
+++ b/src/size.rs
@@ -50,8 +50,8 @@ pub fn terminal_size() -> io::Result<(usize, usize)> {
 pub fn terminal_size() -> io::Result<(usize, usize)> {
     use std::env;
 
-    let width = env::var("COLUMNS").unwrap_or(String::new()).parse::<usize>().unwrap_or(0);
-    let height = env::var("LINES").unwrap_or(String::new()).parse::<usize>().unwrap_or(0);
+    let width = try!(env::var("COLUMNS").map_err(|x| io::Error::new(io::ErrorKind::NotFound, x))).parse().unwrap_or(0);
+    let height = try!(env::var("LINES").map_err(|x| io::Error::new(io::ErrorKind::NotFound, x))).parse().unwrap_or(0);
 
     Ok((width, height))
 }