diff --git a/src/data.rs b/src/data.rs
index 26367dd..738d4a7 100644
--- a/src/data.rs
+++ b/src/data.rs
@@ -42,9 +42,11 @@
     pub ty: Ty,
 }
 
-#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[derive(Debug, Clone, Eq, PartialEq)]
 pub enum Visibility {
     Public,
+    Crate,
+    Restricted(Box<Path>),
     Inherited,
 }
 
@@ -56,7 +58,7 @@
     use constant::parsing::const_expr;
     use generics::parsing::where_clause;
     use ident::parsing::ident;
-    use ty::parsing::ty;
+    use ty::parsing::{path, ty};
 
     named!(pub struct_body -> (WhereClause, VariantData), alt!(
         do_parse!(
@@ -147,6 +149,22 @@
     ));
 
     named!(pub visibility -> Visibility, alt!(
+        do_parse!(
+            keyword!("pub") >>
+            punct!("(") >>
+            keyword!("crate") >>
+            punct!(")") >>
+            (Visibility::Crate)
+        )
+        |
+        do_parse!(
+            keyword!("pub") >>
+            punct!("(") >>
+            restricted: path >>
+            punct!(")") >>
+            (Visibility::Restricted(Box::new(restricted)))
+        )
+        |
         keyword!("pub") => { |_| Visibility::Public }
         |
         epsilon!() => { |_| Visibility::Inherited }
@@ -206,8 +224,21 @@
 
     impl ToTokens for Visibility {
         fn to_tokens(&self, tokens: &mut Tokens) {
-            if let Visibility::Public = *self {
-                tokens.append("pub");
+            match *self {
+                Visibility::Public => tokens.append("pub"),
+                Visibility::Crate => {
+                    tokens.append("pub");
+                    tokens.append("(");
+                    tokens.append("crate");
+                    tokens.append(")");
+                }
+                Visibility::Restricted(ref path) => {
+                    tokens.append("pub");
+                    tokens.append("(");
+                    path.to_tokens(tokens);
+                    tokens.append(")");
+                }
+                Visibility::Inherited => {}
             }
         }
     }
diff --git a/tests/test_round_trip.rs b/tests/test_round_trip.rs
index 75ad023..848c67d 100644
--- a/tests/test_round_trip.rs
+++ b/tests/test_round_trip.rs
@@ -62,9 +62,7 @@
         // TODO ignore byte order mark
         "tests/rust/src/test/run-pass/utf8-bom.rs" |
         // TODO type macros
-        "tests/rust/src/test/run-pass-fulldeps/proc_macro.rs" |
-        // TODO pub(crate)
-        "tests/rust/src/test/ui/span/pub-struct-field.rs" => false,
+        "tests/rust/src/test/run-pass-fulldeps/proc_macro.rs" => false,
         _ => true,
     }
 }
@@ -154,7 +152,8 @@
     use std::rc::Rc;
     use syntex_syntax::ast::{Attribute, Expr, ExprKind, Field, FnDecl, FunctionRetTy, ImplItem,
                              ImplItemKind, ItemKind, Mac, MetaItem, MetaItemKind, MethodSig,
-                             NestedMetaItem, NestedMetaItemKind, TraitItem, TraitItemKind, TyParam};
+                             NestedMetaItem, NestedMetaItemKind, TraitItem, TraitItemKind, TyParam,
+                             Visibility};
     use syntex_syntax::codemap::{self, Spanned};
     use syntex_syntax::fold::{self, Folder};
     use syntex_syntax::parse::token::{Lit, Token, intern};
@@ -383,6 +382,13 @@
                 _ => t,
             }
         }
+
+        fn fold_vis(&mut self, vis: Visibility) -> Visibility {
+            match vis {
+                Visibility::Crate(span) => Visibility::Crate(self.new_span(span)),
+                _ => fold::noop_fold_vis(vis, self),
+            }
+        }
     }
 
     Respanner.fold_crate(krate)
