diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 838d331..109386d 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -1897,8 +1897,8 @@
 Sema::BuildQualifiedDeclarationNameExpr(CXXScopeSpec &SS,
                                         const DeclarationNameInfo &NameInfo,
                                         bool IsAddressOfOperand) {
-  DeclContext *DC;
-  if (!(DC = computeDeclContext(SS, false)) || DC->isDependentContext())
+  DeclContext *DC = computeDeclContext(SS, false);
+  if (!DC)
     return BuildDependentDeclRefExpr(SS, /*TemplateKWLoc=*/SourceLocation(),
                                      NameInfo, /*TemplateArgs=*/0);
 
@@ -1911,6 +1911,10 @@
   if (R.isAmbiguous())
     return ExprError();
 
+  if (R.getResultKind() == LookupResult::NotFoundInCurrentInstantiation)
+    return BuildDependentDeclRefExpr(SS, /*TemplateKWLoc=*/SourceLocation(),
+                                     NameInfo, /*TemplateArgs=*/0);
+
   if (R.empty()) {
     Diag(NameInfo.getLoc(), diag::err_no_member)
       << NameInfo.getName() << DC << SS.getRange();
diff --git a/test/SemaTemplate/current-instantiation.cpp b/test/SemaTemplate/current-instantiation.cpp
index ccef811..f47c071 100644
--- a/test/SemaTemplate/current-instantiation.cpp
+++ b/test/SemaTemplate/current-instantiation.cpp
@@ -2,7 +2,7 @@
 
 // This test concerns the identity of dependent types within the
 // canonical type system, specifically focusing on the difference
-// between members of the current instantiation and membmers of an
+// between members of the current instantiation and members of an
 // unknown specialization. This considers C++ [temp.type], which
 // specifies type equivalence within a template, and C++0x
 // [temp.dep.type], which defines what it means to be a member of the
@@ -235,3 +235,15 @@
   template<typename X<XT>::Enum>
   class X<XT>::Inner { };
 }
+
+namespace RebuildDependentScopeDeclRefExpr {
+  template<int> struct N {};
+  template<typename T> struct X {
+    static const int thing = 0;
+    N<thing> data();
+    N<thing> foo();
+  };
+  template<typename T> N<X<T>::thing> X<T>::data() {}
+  // FIXME: We should issue a typo-correction here.
+  template<typename T> N<X<T>::think> X<T>::foo() {} // expected-error {{no member named 'think' in 'X<T>'}}
+}
