diff --git a/Cargo.toml b/Cargo.toml
index 3b38b25f62c188e77186ec3b3fd6e75a217d2039..d0a6c572bc8c881cda457b09c0aa09dde21fa7fd 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -20,6 +20,6 @@ name = "example"
 path = "examples/main.rs"
 
 [dependencies]
-base64 = "0.1.1"
+base64 = "0.5.2"
 xml-rs = "0.3.0"
 flate2 = "1.0.1"
diff --git a/src/lib.rs b/src/lib.rs
index 2f4de744a9ac04b32a1b44eddfcf66ded42e3276..7f1af7e25fc7f67ae22dcd0a918041067e30a705 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -11,7 +11,6 @@ use std::fmt;
 use xml::reader::{EventReader, Error as XmlError};
 use xml::reader::XmlEvent;
 use xml::attribute::OwnedAttribute;
-use base64::{u8de as decode_base64, Base64Error};
 use flate2::read::{ZlibDecoder, GzDecoder};
 
 #[derive(Debug, Copy, Clone)]
@@ -114,7 +113,7 @@ pub enum TiledError {
     /// An error occured when decompressing using the
     /// [flate2](https://github.com/alexcrichton/flate2-rs) crate.
     DecompressingError(Error),
-    Base64DecodingError(Base64Error),
+    Base64DecodingError(base64::DecodeError),
     XmlDecodingError(XmlError),
     PrematureEnd(String),
     Other(String)
@@ -829,7 +828,7 @@ fn parse_data<R: Read>(parser: &mut EventReader<R>, attrs: Vec<OwnedAttribute>,
 fn parse_base64<R: Read>(parser: &mut EventReader<R>) -> Result<Vec<u8>, TiledError> {
     loop {
         match try!(parser.next().map_err(TiledError::XmlDecodingError)) {
-            XmlEvent::Characters(s) => return decode_base64(s.trim().as_bytes())
+            XmlEvent::Characters(s) => return base64::decode(s.trim().as_bytes())
                                     .map_err(TiledError::Base64DecodingError),
             XmlEvent::EndElement {name, ..} => {
                 if name.local_name == "data" {