diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index 652f708..326754d 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
 {
   "git": {
-    "sha1": "a3c7d4f0d396480243fd40b777bd3708e87ea80c"
+    "sha1": "ff47f2f0bbba62fcb2f892f5c488265b3bd7156f"
   }
 }
diff --git a/Cargo.toml b/Cargo.toml
index e18833f..5b7eaad 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@
 [package]
 edition = "2018"
 name = "paste-impl"
-version = "0.1.11"
+version = "0.1.12"
 authors = ["David Tolnay <dtolnay@gmail.com>"]
 description = "Implementation detail of the `paste` crate"
 license = "MIT OR Apache-2.0"
@@ -34,5 +34,3 @@
 
 [dependencies.syn]
 version = "1.0"
-[badges.travis-ci]
-repository = "dtolnay/paste"
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index a11873f..057e084 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,6 +1,6 @@
 [package]
 name = "paste-impl"
-version = "0.1.11"
+version = "0.1.12"
 authors = ["David Tolnay <dtolnay@gmail.com>"]
 edition = "2018"
 license = "MIT OR Apache-2.0"
@@ -10,9 +10,6 @@
 [lib]
 proc-macro = true
 
-[badges]
-travis-ci = { repository = "dtolnay/paste" }
-
 [dependencies]
 proc-macro-hack = "0.5"
 proc-macro2 = "1.0"
diff --git a/METADATA b/METADATA
index e62bf34..b2cbadf 100644
--- a/METADATA
+++ b/METADATA
@@ -9,11 +9,11 @@
     type: GIT
     value: "https://github.com/dtolnay/paste"
   }
-  version: "0.1.11"
+  version: "0.1.12"
   license_type: NOTICE
   last_upgrade_date {
     year: 2020
-    month: 4
-    day: 27
+    month: 5
+    day: 4
   }
 }
diff --git a/src/lib.rs b/src/lib.rs
index b62929d..dce8bb0 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -51,7 +51,7 @@
                         let segments = parse_bracket_as_segments.parse2(content)?;
                         let pasted = paste_segments(span, &segments)?;
                         pasted.to_tokens(&mut expanded);
-                    } else if delimiter == Delimiter::None && is_single_ident(&content) {
+                    } else if is_none_delimited_single_ident_or_lifetime(delimiter, &content) {
                         content.to_tokens(&mut expanded);
                     } else {
                         let nested = PasteInput::parse.parse2(content)?;
@@ -72,15 +72,30 @@
     parse_bracket_as_segments.parse2(input).is_ok()
 }
 
-fn is_single_ident(input: &TokenStream) -> bool {
-    let mut has_ident = false;
-    for tt in input.clone() {
-        match tt {
-            TokenTree::Ident(_) if !has_ident => has_ident = true,
-            _ => return false,
-        }
+// https://github.com/dtolnay/paste/issues/26
+fn is_none_delimited_single_ident_or_lifetime(delimiter: Delimiter, input: &TokenStream) -> bool {
+    if delimiter != Delimiter::None {
+        return false;
     }
-    has_ident
+
+    #[derive(PartialEq)]
+    enum State {
+        Init,
+        Ident,
+        Apostrophe,
+        Lifetime,
+    }
+
+    let mut state = State::Init;
+    for tt in input.clone() {
+        state = match (state, &tt) {
+            (State::Init, TokenTree::Ident(_)) => State::Ident,
+            (State::Init, TokenTree::Punct(punct)) if punct.as_char() == '\'' => State::Apostrophe,
+            (State::Apostrophe, TokenTree::Ident(_)) => State::Lifetime,
+            _ => return false,
+        };
+    }
+    state == State::Ident || state == State::Lifetime
 }
 
 enum Segment {
