try it out, fail
diff --git a/lib/adapters/idb/idb.js b/lib/adapters/idb/idb.js
index 2d41a53..c0a8487 100644
--- a/lib/adapters/idb/idb.js
+++ b/lib/adapters/idb/idb.js
@@ -628,18 +628,18 @@
 
 
   api._getLocal = function (id, callback) {
+    if (!api._localDocIds[id.substring(7)]) {
+      return callback(errors.error(errors.MISSING_DOC));
+    }
+
     var tx = idb.transaction([LOCAL_STORE], 'readonly');
     var req = tx.objectStore(LOCAL_STORE).get(id);
 
     req.onerror = idbError(callback);
     req.onsuccess = function (e) {
       var doc = e.target.result;
-      if (!doc) {
-        callback(errors.error(errors.MISSING_DOC));
-      } else {
-        delete doc['_doc_id_rev']; // for backwards compat
-        callback(null, doc);
-      }
+      delete doc['_doc_id_rev']; // for backwards compat
+      callback(null, doc);
     };
   };
 
@@ -697,6 +697,7 @@
       };
       req.onsuccess = function (e) {
         ret = {ok: true, id: doc._id, rev: doc._rev};
+        api._localDocIds.add(id.substring(7));
         if (opts.ctx) { // return immediately
           callback(null, ret);
         }
@@ -724,6 +725,7 @@
       } else {
         oStore.delete(id);
         ret = {ok: true, id: id, rev: '0-0'};
+        api._localDocIds.delete(id.substring(7));
       }
     };
   };
@@ -780,7 +782,8 @@
         cachedDBs.delete(name);
       };
 
-      var txn = idb.transaction([META_STORE, DETECT_BLOB_SUPPORT_STORE],
+      var txn = idb.transaction(
+        [META_STORE, DETECT_BLOB_SUPPORT_STORE, LOCAL_STORE],
         'readwrite');
 
       var req = txn.objectStore(META_STORE).get(META_STORE);
@@ -793,7 +796,7 @@
       function onGetMetadata(meta) {
 
         function checkSetupComplete() {
-          if (api._blobSupport === null || !idStored) {
+          if (api._blobSupport === null || !idStored || !api._localDocIds) {
             return;
           } else {
             cachedDBs[name] = {
@@ -801,6 +804,7 @@
               instanceId: instanceId,
               idStored: idStored,
               blobSupport: api._blobSupport,
+              localDocIds: api._localDocIds,
               loaded: true
             };
             callback(null, api);
@@ -878,8 +882,27 @@
           });
         }
 
+        function readLocalDocIds() {
+          var cursor = txn.objectStore(LOCAL_STORE).openCursor();
+
+          var localDocIds = new utils.Set();
+
+          cursor.onsuccess = function (e) {
+            var cursor = e.target.result;
+            if (!cursor) { // done
+              api._localDocIds = localDocIds;
+              checkSetupComplete();
+            } else {
+              // remove leading '_local/'
+              localDocIds.add(cursor.primaryKey.substring(7));
+              cursor.continue();
+            }
+          };
+        }
+
         storeId();
         checkBlobSupport();
+        readLocalDocIds();
       }
     }
 
@@ -902,6 +925,7 @@
     instanceId = cached.instanceId;
     idStored = cached.idStored;
     api._blobSupport = cached.blobSupport;
+    api._localDocIds = cached.localDocIds;
     process.nextTick(function () {
       callback(null, api);
     });