diff --git a/src/expr.rs b/src/expr.rs
index 1c883c8..7f43fb9 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -2531,16 +2531,20 @@
                             ahead.is_empty() || ahead.peek(Token![,])
                         }
                 })
+                || input.peek(Token![self]) && input.peek2(Token![::])
                 || input.peek(Token![::])
                 || input.peek(Token![<])
-                || input.peek(Token![self])
                 || input.peek(Token![Self])
                 || input.peek(Token![super])
                 || input.peek(Token![extern])
                 || input.peek(Token![crate])
             {
                 pat_path_or_macro_or_struct_or_range(input)
-            } else if input.peek(Token![ref]) || input.peek(Token![mut]) || input.peek(Ident) {
+            } else if input.peek(Token![ref])
+                || input.peek(Token![mut])
+                || input.peek(Token![self])
+                || input.peek(Ident)
+            {
                 input.call(pat_ident).map(Pat::Ident)
             } else if lookahead.peek(token::Paren) {
                 input.call(pat_tuple).map(Pat::Tuple)
diff --git a/tests/test_pat.rs b/tests/test_pat.rs
new file mode 100644
index 0000000..ee54e23
--- /dev/null
+++ b/tests/test_pat.rs
@@ -0,0 +1,27 @@
+// Copyright 2018 Syn Developers
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#[macro_use]
+extern crate quote;
+extern crate syn;
+
+#[test]
+fn test_pat_ident() {
+  match syn::parse2(quote!(self)).unwrap() {
+    syn::Pat::Ident(_) => (),
+    value => panic!("expected PatIdent, got {:?}", value),
+  }
+}
+
+#[test]
+fn test_pat_path() {
+  match syn::parse2(quote!(self::CONST)).unwrap() {
+    syn::Pat::Path(_) => (),
+    value => panic!("expected PatPath, got {:?}", value),
+  }
+}
\ No newline at end of file
