diff --git a/include/clang/Sema/Lookup.h b/include/clang/Sema/Lookup.h
index 1badca2..aa58d14 100644
--- a/include/clang/Sema/Lookup.h
+++ b/include/clang/Sema/Lookup.h
@@ -497,25 +497,18 @@
     LookupResult &Results;
     LookupResult::iterator I;
     bool Changed;
-#ifndef NDEBUG
     bool CalledDone;
-#endif
     
     friend class LookupResult;
     Filter(LookupResult &Results)
-      : Results(Results), I(Results.begin()), Changed(false)
-#ifndef NDEBUG
-      , CalledDone(false)
-#endif
+      : Results(Results), I(Results.begin()), Changed(false), CalledDone(false)
     {}
 
   public:
-#ifndef NDEBUG
     ~Filter() {
       assert(CalledDone &&
              "LookupResult::Filter destroyed without done() call");
     }
-#endif
 
     bool hasNext() const {
       return I != Results.end();
@@ -546,10 +539,8 @@
     }
 
     void done() {
-#ifndef NDEBUG
       assert(!CalledDone && "done() called twice");
       CalledDone = true;
-#endif
 
       if (Changed)
         Results.resolveKindAfterFilter();
@@ -578,11 +569,7 @@
   void configure();
 
   // Sanity checks.
-#ifndef NDEBUG
   void sanity() const;
-#else
-  void sanity() const {}
-#endif
 
   bool sanityCheckUnresolved() const {
     for (iterator I = begin(), E = end(); I != E; ++I)
diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp
index b73177e..16ca78f 100644
--- a/lib/Sema/SemaLookup.cpp
+++ b/lib/Sema/SemaLookup.cpp
@@ -292,7 +292,6 @@
   }
 }
 
-#ifndef NDEBUG
 void LookupResult::sanity() const {
   assert(ResultKind != NotFound || Decls.size() == 0);
   assert(ResultKind != Found || Decls.size() == 1);
@@ -307,7 +306,6 @@
                              (Ambiguity == AmbiguousBaseSubobjectTypes ||
                               Ambiguity == AmbiguousBaseSubobjects)));
 }
-#endif
 
 // Necessary because CXXBasePaths is not complete in Sema.h
 void LookupResult::deletePaths(CXXBasePaths *Paths) {
