diff --git a/src/attr.rs b/src/attr.rs
index 4fede88..2e0cccb 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -282,7 +282,15 @@
                 }
             }
 
-            Some((Meta::Word(ident.clone()).into(), &tts[1..]))
+            let nested_meta = if ident == "true" || ident == "false" {
+                NestedMeta::Literal(Lit::Bool(LitBool {
+                    value: ident == "true",
+                    span: ident.span(),
+                }))
+            } else {
+                NestedMeta::Meta(Meta::Word(ident.clone()))
+            };
+            Some((nested_meta, &tts[1..]))
         }
 
         _ => None,
diff --git a/tests/test_meta_item.rs b/tests/test_meta_item.rs
index 623e5da..8a0fed0 100644
--- a/tests/test_meta_item.rs
+++ b/tests/test_meta_item.rs
@@ -167,6 +167,23 @@
     )
 }
 
+#[test]
+fn test_bool_lit() {
+    run_test(
+        "#[foo(true)]",
+        MetaList {
+            ident: ident("foo").into(),
+            paren_token: Default::default(),
+            nested: punctuated![
+                NestedMeta::Literal(Lit::Bool(LitBool {
+                    value: true,
+                    span: Span::call_site(),
+                })),
+            ],
+        },
+    )
+}
+
 fn run_test<T: Into<Meta>>(input: &str, expected: T) {
     let attrs = Attribute::parse_outer.parse_str(input).unwrap();
     assert_eq!(attrs.len(), 1);
