diff --git a/src/stable.rs b/src/stable.rs
index 68e4e33..058da58 100644
--- a/src/stable.rs
+++ b/src/stable.rs
@@ -370,26 +370,16 @@
     ) => { |ts| (Delimiter::Brace, ts) }
 ));
 
-named!(symbol -> ::Symbol, alt!(
-    lifetime
-    |
-    map!(word, ::Symbol::from)
-));
-
-named!(lifetime -> ::Symbol, preceded!(
-    punct!("'"),
-    alt!(
-        // TODO: can we get rid of this allocation?
-        map!(word, |id| ::Symbol::from(format!("'{}", id)))
-        |
-        map!(keyword!("static"), |_| ::Symbol::from("'static"))
-    )
-));
-
-fn word(mut input: &str) -> PResult<&str> {
+fn symbol(mut input: &str) -> PResult<::Symbol> {
     input = skip_whitespace(input);
 
     let mut chars = input.char_indices();
+
+    let lifetime = input.starts_with("'");
+    if lifetime {
+        chars.next();
+    }
+
     match chars.next() {
         Some((_, ch)) if UnicodeXID::is_xid_start(ch) || ch == '_' => {}
         _ => return Err(LexError),
@@ -397,11 +387,11 @@
 
     for (i, ch) in chars {
         if !UnicodeXID::is_xid_continue(ch) {
-            return Ok((&input[i..], &input[..i]))
+            return Ok((&input[i..], input[..i].into()))
         }
     }
 
-    Ok(("", input))
+    Ok(("", input.into()))
 }
 
 fn literal(input: &str) -> PResult<::Literal> {
@@ -980,6 +970,8 @@
             0
             0xffffffffffffffffffffffffffffffff
         ");
+        roundtrip("'a");
+        roundtrip("'static");
     }
 
     #[test]
@@ -992,5 +984,6 @@
         fail("1x");
         fail("1u80");
         fail("1f320");
+        fail("' static");
     }
 }
