diff --git a/vm/native/dalvik_system_VMRuntime.cpp b/vm/native/dalvik_system_VMRuntime.cpp
index 002d014..4123426 100644
--- a/vm/native/dalvik_system_VMRuntime.cpp
+++ b/vm/native/dalvik_system_VMRuntime.cpp
@@ -353,7 +353,7 @@
     }
     // Skip static methods for uninitialized classes because a filled
     // cache entry implies the class is initialized.
-    if ((methodType != METHOD_STATIC) && !dvmIsClassInitialized(clazz)) {
+    if ((methodType == METHOD_STATIC) && !dvmIsClassInitialized(clazz)) {
         return;
     }
     const char* methodName = dexStringById(pDexFile, pMethodId->nameIdx);
@@ -459,16 +459,18 @@
 
     // We use a std::map to avoid heap allocating StringObjects to lookup in gDvm.literalStrings
     StringTable strings;
-    dvmLockMutex(&gDvm.internLock);
-    dvmHashTableLock(gDvm.literalStrings);
-    for (int i = 0; i < gDvm.literalStrings->tableSize; ++i) {
-        HashEntry *entry = &gDvm.literalStrings->pEntries[i];
-        if (entry->data != NULL && entry->data != HASH_TOMBSTONE) {
-            preloadDexCachesStringsVisitor(&entry->data, 0, ROOT_INTERNED_STRING, &strings);
+    if (kPreloadDexCachesStrings) {
+        dvmLockMutex(&gDvm.internLock);
+        dvmHashTableLock(gDvm.literalStrings);
+        for (int i = 0; i < gDvm.literalStrings->tableSize; ++i) {
+            HashEntry *entry = &gDvm.literalStrings->pEntries[i];
+            if (entry->data != NULL && entry->data != HASH_TOMBSTONE) {
+                preloadDexCachesStringsVisitor(&entry->data, 0, ROOT_INTERNED_STRING, &strings);
+            }
         }
+        dvmHashTableUnlock(gDvm.literalStrings);
+        dvmUnlockMutex(&gDvm.internLock);
     }
-    dvmHashTableUnlock(gDvm.literalStrings);
-    dvmUnlockMutex(&gDvm.internLock);
 
     for (ClassPathEntry* cpe = gDvm.bootClassPath; cpe->kind != kCpeLastEntry; cpe++) {
         DvmDex* pDvmDex = getDvmDexFromClassPathEntry(cpe);
