Parse inner attributes within foreign mod
diff --git a/src/item.rs b/src/item.rs
index 222c648..ebe2cb9 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -1068,14 +1068,21 @@
     ));
 
     impl_synom!(ItemForeignMod "foreign mod item" do_parse!(
-        attrs: many0!(Attribute::parse_outer) >>
+        outer_attrs: many0!(Attribute::parse_outer) >>
         abi: syn!(Abi) >>
-        items: braces!(many0!(ForeignItem::parse)) >>
+        braced_content: braces!(tuple!(
+            many0!(Attribute::parse_inner),
+            many0!(ForeignItem::parse)
+        )) >>
         (ItemForeignMod {
-            attrs: attrs,
+            attrs: {
+                let mut attrs = outer_attrs;
+                attrs.extend((braced_content.1).0);
+                attrs
+            },
             abi: abi,
-            brace_token: items.0,
-            items: items.1,
+            brace_token: braced_content.0,
+            items: (braced_content.1).1,
         })
     ));
 
@@ -1640,6 +1647,7 @@
             tokens.append_all(self.attrs.outer());
             self.abi.to_tokens(tokens);
             self.brace_token.surround(tokens, |tokens| {
+                tokens.append_all(self.attrs.inner());
                 tokens.append_all(&self.items);
             });
         }
diff --git a/tests/common/mod.rs b/tests/common/mod.rs
index e424246..3c4029a 100644
--- a/tests/common/mod.rs
+++ b/tests/common/mod.rs
@@ -89,10 +89,6 @@
         // https://github.com/dtolnay/syn/issues/459
         // https://github.com/dtolnay/syn/issues/460
         "tests/rust/src/test/pretty/stmt_expr_attributes.rs" |
-        // TODO inner attributes within foreign mod
-        //
-        // https://github.com/dtolnay/syn/issues/456
-        "tests/rust/src/test/run-pass/item-attributes.rs" |
         // TODO feature(macros_in_extern)
         //
         // https://github.com/dtolnay/syn/issues/390