Index: test/Frontend/ast-import-decl.cpp
===================================================================
--- test/Frontend/ast-import-decl.cpp	(revision 0)
+++ test/Frontend/ast-import-decl.cpp	(revision 0)
@@ -0,0 +1,10 @@
+// RUN: rm -rf %t
+// RUN: %clang -fmodule-cache-path %t -fmodules -x objective-c -I %S -emit-ast -o %t.ast %s
+// RUN: %clang -cc1 -ast-print -x ast - < %t.ast | FileCheck %s
+
+@__experimental_modules_import module_test;
+// CHECK: struct T
+
+int main() {
+  return 0;
+}
Index: test/Frontend/ast-import-decl.h
===================================================================
--- test/Frontend/ast-import-decl.h	(revision 0)
+++ test/Frontend/ast-import-decl.h	(revision 0)
@@ -0,0 +1 @@
+struct T {};
Index: test/Frontend/module.map
===================================================================
--- test/Frontend/module.map	(revision 0)
+++ test/Frontend/module.map	(revision 0)
@@ -0,0 +1,3 @@
+module module_test {
+  header "ast-import-decl.h"
+}
Index: lib/Serialization/ASTReaderDecl.cpp
===================================================================
--- lib/Serialization/ASTReaderDecl.cpp	(revision 156697)
+++ lib/Serialization/ASTReaderDecl.cpp	(working copy)
@@ -1249,7 +1249,6 @@
   SourceLocation *StoredLocs = reinterpret_cast<SourceLocation *>(D + 1);
   for (unsigned I = 0, N = Record.back(); I != N; ++I)
     StoredLocs[I] = ReadSourceLocation(Record, Idx);
-  ++Idx;
 }
 
 void ASTDeclReader::VisitAccessSpecDecl(AccessSpecDecl *D) {
