diff --git a/src/attr.rs b/src/attr.rs
index 9e69494..d818b4f 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -414,7 +414,7 @@
                 bang: punct!(!) >>
                 path_and_tts: brackets!(tuple!(
                     call!(Path::parse_mod_style),
-                    syn!(TokenStream)
+                    syn!(TokenStream),
                 )) >>
                 ({
                     let (bracket, (path, tts)) = path_and_tts;
@@ -454,7 +454,7 @@
                 pound: punct!(#) >>
                 path_and_tts: brackets!(tuple!(
                     call!(Path::parse_mod_style),
-                    syn!(TokenStream)
+                    syn!(TokenStream),
                 )) >>
                 ({
                     let (bracket, (path, tts)) = path_and_tts;
diff --git a/src/derive.rs b/src/derive.rs
index 3bf125c..ecef776 100644
--- a/src/derive.rs
+++ b/src/derive.rs
@@ -186,7 +186,7 @@
 
     named!(data_union -> (Option<WhereClause>, FieldsNamed), tuple!(
         option!(syn!(WhereClause)),
-        syn!(FieldsNamed)
+        syn!(FieldsNamed),
     ));
 }
 
diff --git a/src/expr.rs b/src/expr.rs
index 4206e37..a6f94fc 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -1712,7 +1712,7 @@
             outer_attrs: many0!(Attribute::parse_outer) >>
             e: parens!(tuple!(
                 many0!(Attribute::parse_inner),
-                syn!(Expr)
+                syn!(Expr),
             )) >>
             (ExprParen {
                 attrs: {
@@ -1736,7 +1736,7 @@
             outer_attrs: many0!(Attribute::parse_outer) >>
             elems: brackets!(tuple!(
                 many0!(Attribute::parse_inner),
-                call!(Punctuated::parse_terminated)
+                call!(Punctuated::parse_terminated),
             )) >>
             (ExprArray {
                 attrs: {
@@ -1765,7 +1765,7 @@
             punct!(::),
             punct!(<),
             call!(Punctuated::parse_terminated),
-            punct!(>)
+            punct!(>),
         )) >>
         args: parens!(Punctuated::parse_terminated) >>
         ({
@@ -1806,7 +1806,7 @@
             outer_attrs: many0!(Attribute::parse_outer) >>
             elems: parens!(tuple!(
                 many0!(Attribute::parse_inner),
-                call!(Punctuated::parse_terminated)
+                call!(Punctuated::parse_terminated),
             )) >>
             (ExprTuple {
                 attrs: {
@@ -1911,7 +1911,7 @@
             expr: expr_no_struct >>
             block: braces!(tuple!(
                 many0!(Attribute::parse_inner),
-                call!(Block::parse_within)
+                call!(Block::parse_within),
             )) >>
             (ExprForLoop {
                 attrs: {
@@ -1944,7 +1944,7 @@
             loop_: keyword!(loop) >>
             block: braces!(tuple!(
                 many0!(Attribute::parse_inner),
-                call!(Block::parse_within)
+                call!(Block::parse_within),
             )) >>
             (ExprLoop {
                 attrs: {
@@ -1974,7 +1974,7 @@
             obj: expr_no_struct >>
             braced_content: braces!(tuple!(
                 many0!(Attribute::parse_inner),
-                many0!(syn!(Arm))
+                many0!(syn!(Arm)),
             )) >>
             (ExprMatch {
                 attrs: {
@@ -2127,7 +2127,7 @@
             cond: expr_no_struct >>
             block: braces!(tuple!(
                 many0!(Attribute::parse_inner),
-                call!(Block::parse_within)
+                call!(Block::parse_within),
             )) >>
             (ExprWhile {
                 attrs: {
@@ -2162,7 +2162,7 @@
             value: expr_no_struct >>
             block: braces!(tuple!(
                 many0!(Attribute::parse_inner),
-                call!(Block::parse_within)
+                call!(Block::parse_within),
             )) >>
             (ExprWhileLet {
                 attrs: {
@@ -2334,7 +2334,7 @@
                 many0!(Attribute::parse_inner),
                 syn!(Expr),
                 punct!(;),
-                syn!(Expr)
+                syn!(Expr),
             )) >>
             (ExprRepeat {
                 attrs: {
@@ -2377,7 +2377,7 @@
             outer_attrs: many0!(Attribute::parse_outer) >>
             block: braces!(tuple!(
                 many0!(Attribute::parse_inner),
-                call!(Block::parse_within)
+                call!(Block::parse_within),
             )) >>
             (ExprBlock {
                 attrs: {
diff --git a/src/item.rs b/src/item.rs
index ebe2cb9..080f7fc 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -954,7 +954,7 @@
         where_clause: option!(syn!(WhereClause)) >>
         inner_attrs_stmts: braces!(tuple!(
             many0!(Attribute::parse_inner),
-            call!(Block::parse_within)
+            call!(Block::parse_within),
         )) >>
         (ItemFn {
             attrs: {
@@ -1045,7 +1045,7 @@
             braces!(
                 tuple!(
                     many0!(Attribute::parse_inner),
-                    many0!(Item::parse)
+                    many0!(Item::parse),
                 )
             ) => {|(brace, (inner_attrs, items))| (
                 inner_attrs,
@@ -1072,7 +1072,7 @@
         abi: syn!(Abi) >>
         braced_content: braces!(tuple!(
             many0!(Attribute::parse_inner),
-            many0!(ForeignItem::parse)
+            many0!(ForeignItem::parse),
         )) >>
         (ItemForeignMod {
             attrs: {
@@ -1396,7 +1396,7 @@
         where_clause: option!(syn!(WhereClause)) >>
         inner: braces!(tuple!(
             many0!(Attribute::parse_inner),
-            many0!(ImplItem::parse)
+            many0!(ImplItem::parse),
         )) >>
         (ItemImpl {
             attrs: {
@@ -1468,7 +1468,7 @@
         where_clause: option!(syn!(WhereClause)) >>
         inner_attrs_stmts: braces!(tuple!(
             many0!(Attribute::parse_inner),
-            call!(Block::parse_within)
+            call!(Block::parse_within),
         )) >>
         (ImplItemMethod {
             attrs: {
diff --git a/src/parsers.rs b/src/parsers.rs
index 8be5dde..400c0ca 100644
--- a/src/parsers.rs
+++ b/src/parsers.rs
@@ -749,8 +749,8 @@
 /// *This macro is available if Syn is built with the `"parsing"` feature.*
 #[macro_export]
 macro_rules! tuple {
-    ($i:expr, $($rest:tt)*) => {
-        tuple_parser!($i, (), $($rest)*)
+    ($i:expr, $($rest:tt)+) => {
+        tuple_parser!($i, (), $($rest)+)
     };
 }
 
@@ -758,47 +758,34 @@
 #[doc(hidden)]
 #[macro_export]
 macro_rules! tuple_parser {
-    ($i:expr, ($($parsed:tt),*), $e:ident, $($rest:tt)*) => {
-        tuple_parser!($i, ($($parsed),*), call!($e), $($rest)*)
+    ($i:expr, ($($parsed:ident,)*), $e:ident) => {
+        tuple_parser!($i, ($($parsed,)*), call!($e))
     };
 
-    ($i:expr, (), $submac:ident!( $($args:tt)* ), $($rest:tt)*) => {
+    ($i:expr, ($($parsed:ident,)*), $e:ident, $($rest:tt)*) => {
+        tuple_parser!($i, ($($parsed,)*), call!($e), $($rest)*)
+    };
+
+    ($i:expr, ($($parsed:ident,)*), $submac:ident!( $($args:tt)* )) => {
         match $submac!($i, $($args)*) {
             ::std::result::Result::Err(err) =>
                 ::std::result::Result::Err(err),
             ::std::result::Result::Ok((o, i)) =>
-                tuple_parser!(i, (o), $($rest)*),
+                ::std::result::Result::Ok((($($parsed,)* o,), i)),
         }
     };
 
-    ($i:expr, ($($parsed:tt)*), $submac:ident!( $($args:tt)* ), $($rest:tt)*) => {
+    ($i:expr, ($($parsed:ident,)*), $submac:ident!( $($args:tt)* ), $($rest:tt)*) => {
         match $submac!($i, $($args)*) {
             ::std::result::Result::Err(err) =>
                 ::std::result::Result::Err(err),
             ::std::result::Result::Ok((o, i)) =>
-                tuple_parser!(i, ($($parsed)* , o), $($rest)*),
+                tuple_parser!(i, ($($parsed,)* o,), $($rest)*),
         }
     };
 
-    ($i:expr, ($($parsed:tt),*), $e:ident) => {
-        tuple_parser!($i, ($($parsed),*), call!($e))
-    };
-
-    ($i:expr, (), $submac:ident!( $($args:tt)* )) => {
-        $submac!($i, $($args)*)
-    };
-
-    ($i:expr, ($($parsed:expr),*), $submac:ident!( $($args:tt)* )) => {
-        match $submac!($i, $($args)*) {
-            ::std::result::Result::Err(err) =>
-                ::std::result::Result::Err(err),
-            ::std::result::Result::Ok((o, i)) =>
-                ::std::result::Result::Ok((($($parsed),*, o), i)),
-        }
-    };
-
-    ($i:expr, ($($parsed:expr),*)) => {
-        ::std::result::Result::Ok((($($parsed),*), $i))
+    ($i:expr, ($($parsed:ident,)*),) => {
+        ::std::result::Result::Ok((($($parsed,)*), $i))
     };
 }
 
