diff --git a/src/casts.h b/src/casts.h
index 0534eca..a5e31c4 100644
--- a/src/casts.h
+++ b/src/casts.h
@@ -59,7 +59,8 @@
     implicit_cast<From*, To>(0);
   }
 
-  assert(f == NULL || dynamic_cast<To>(f) != NULL);  // RTTI: debug mode only!
+  // 
+  // assert(f == NULL || dynamic_cast<To>(f) != NULL);  // RTTI: debug mode only!
   return static_cast<To>(f);
 }
 
diff --git a/src/class_linker.cc b/src/class_linker.cc
index 01e1119..92bb6d4 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -1408,14 +1408,14 @@
     if (c != '[' && c != 'L') {
       if (!seen_non_ref) {
         seen_non_ref = true;
-        DCHECK_EQ(klass->num_reference_ifields_, i);
+        DCHECK_EQ(klass->NumReferenceInstanceFields(), i);
       }
     } else {
       DCHECK(!seen_non_ref);
     }
   }
   if (!seen_non_ref) {
-    DCHECK(klass->NumInstanceFields(), klass->num_reference_ifields_);
+    DCHECK_EQ(klass->NumInstanceFields(), klass->NumReferenceInstanceFields());
   }
 #endif
 
diff --git a/src/dex_cache.h b/src/dex_cache.h
index 47f9bcf..5f3c54f 100644
--- a/src/dex_cache.h
+++ b/src/dex_cache.h
@@ -81,16 +81,16 @@
 
  private:
   ObjectArray<String>* GetStrings() const {
-      return down_cast<ObjectArray<String>*>(Get(kStrings));
+      return static_cast<ObjectArray<String>*>(Get(kStrings));
   }
   ObjectArray<Class>* GetClasses() const {
-      return down_cast<ObjectArray<Class>*>(Get(kClasses));
+      return static_cast<ObjectArray<Class>*>(Get(kClasses));
   }
   ObjectArray<Method>* GetMethods() const {
-      return down_cast<ObjectArray<Method>*>(Get(kMethods));
+      return static_cast<ObjectArray<Method>*>(Get(kMethods));
   }
   ObjectArray<Field>* GetFields() const {
-      return down_cast<ObjectArray<Field>*>(Get(kFields));
+      return static_cast<ObjectArray<Field>*>(Get(kFields));
   }
   DexCache();
 };
