diff --git a/src/libstore/local-overlay-store.cc b/src/libstore/local-overlay-store.cc
index 545e8d28f..bd48c12e4 100644
--- a/src/libstore/local-overlay-store.cc
+++ b/src/libstore/local-overlay-store.cc
@@ -33,21 +33,24 @@ void LocalOverlayStore::queryPathInfoUncached(const StorePath & path,
 
     auto callbackPtr = std::make_shared<decltype(callback)>(std::move(callback));
 
-    // If we don't have it, check lower store
     LocalStore::queryPathInfoUncached(path,
         {[this, path, callbackPtr](std::future<std::shared_ptr<const ValidPathInfo>> fut) {
             try {
-                (*callbackPtr)(fut.get());
+                auto info = fut.get();
+                if (info)
+                    return (*callbackPtr)(std::move(info));
             } catch (...) {
-                lowerStore->queryPathInfo(path,
-                    {[path, callbackPtr](std::future<ref<const ValidPathInfo>> fut) {
-                        try {
-                            (*callbackPtr)(fut.get().get_ptr());
-                        } catch (...) {
-                            callbackPtr->rethrow();
-                        }
-                    }});
+                return callbackPtr->rethrow();
             }
+            // If we don't have it, check lower store
+            lowerStore->queryPathInfo(path,
+                {[path, callbackPtr](std::future<ref<const ValidPathInfo>> fut) {
+                    try {
+                        (*callbackPtr)(fut.get().get_ptr());
+                    } catch (...) {
+                        return callbackPtr->rethrow();
+                    }
+                }});
         }});
 }
 
diff --git a/tests/overlay-local-store/inner.sh b/tests/overlay-local-store/inner.sh
index ccf24b7b0..69c6f6d0c 100755
--- a/tests/overlay-local-store/inner.sh
+++ b/tests/overlay-local-store/inner.sh
@@ -58,8 +58,7 @@ diff $(toRealPath "$storeA/nix/store" "$path") $(toRealPath "$TEST_ROOT/merged-s
 nix-store --verify-path --store "$storeA" "$path"
 
 # Verifying path in merged-store
-# FIXME should succeed
-expect 1 nix-store --verify-path --store "$storeB" "$path"
+nix-store --verify-path --store "$storeB" "$path"
 
 ### Do a redundant add