diff --git a/lib/AST/ExternalASTMerger.cpp b/lib/AST/ExternalASTMerger.cpp
index 1d144047bd1e0717f87185276a24523b633f64c7..e47ed3469862d081885651ea749207dc1d5d4e4b 100644
--- a/lib/AST/ExternalASTMerger.cpp
+++ b/lib/AST/ExternalASTMerger.cpp
@@ -172,10 +172,10 @@ void ExternalASTMerger::FindExternalLexicalDecls(
   ForEachMatchingDC(
       DC, Importers, [DC, IsKindWeWant](const ImporterPair &IP,
                                         Source<const DeclContext *> SourceDC) {
-        for (Source<const Decl *> SourceDecl : SourceDC.get()->decls()) {
-          if (IsKindWeWant(SourceDecl.get()->getKind())) {
+        for (const Decl *SourceDecl : SourceDC.get()->decls()) {
+          if (IsKindWeWant(SourceDecl->getKind())) {
             Decl *ImportedDecl =
-                IP.Forward->Import(const_cast<Decl *>(SourceDecl.get()));
+                IP.Forward->Import(const_cast<Decl *>(SourceDecl));
             assert(ImportedDecl->getDeclContext() == DC);
           }
         }