diff --git a/src/serialize/mod.rs b/src/serialize/mod.rs
index 6501ca18..32913501 100644
--- a/src/serialize/mod.rs
+++ b/src/serialize/mod.rs
@@ -223,7 +223,7 @@ impl<'wr, Wr: Write> Serializer<'wr, Wr> {
pub fn write_doctype(&mut self, name: &str) -> io::Result<()> {
try!(self.writer.write_all(b"\n")
}
pub fn write_processing_instruction(&mut self, target: &str, data: &str) -> io::Result<()> {
diff --git a/tests/serializer.rs b/tests/serializer.rs
index 3e7b9ea9..ecbbd3f3 100644
--- a/tests/serializer.rs
+++ b/tests/serializer.rs
@@ -18,7 +18,7 @@ use std::default::Default;
use std::borrow::ToOwned;
use html5ever::driver::ParseOpts;
-use html5ever::{parse_fragment, one_input, serialize};
+use html5ever::{parse_fragment, parse, one_input, serialize};
use html5ever_dom_sink::rcdom::RcDom;
fn parse_and_serialize(input: String) -> String {
@@ -97,3 +97,12 @@ test!(attr_ns_1, r#""#);
test!(attr_ns_2, r#""#);
test!(attr_ns_3, r#""#);
test!(attr_ns_4, r#""#);
+
+#[test]
+fn doctype() {
+ let dom: RcDom = parse(one_input("".to_owned()), ParseOpts::default());
+ dom.document.borrow_mut().children.truncate(1); // Remove
+ let mut result = vec![];
+ serialize(&mut result, &dom.document, Default::default()).unwrap();
+ assert_eq!(String::from_utf8(result).unwrap(), "\n");
+}