diff --git a/src/libstore/daemon.cc b/src/libstore/daemon.cc
index cc1436f90caa83ad52f928dc5d2d0657167cdb3f..64147027b26862f28d534931a7da4fc352fff2c0 100644
--- a/src/libstore/daemon.cc
+++ b/src/libstore/daemon.cc
@@ -316,10 +316,7 @@ static void performOp(TunnelLogger * logger, ref<Store> store,
         logger->startWork();
         if (!savedRegular.regular) throw Error("regular file expected");
 
-        auto store2 = store.dynamic_pointer_cast<LocalStore>();
-        if (!store2) throw Error("operation is only supported by LocalStore");
-
-        Path path = store2->addToStoreFromDump(recursive ? *savedNAR.data : savedRegular.s, baseName, recursive, hashAlgo);
+        Path path = store->addToStoreFromDump(recursive ? *savedNAR.data : savedRegular.s, baseName, recursive, hashAlgo);
         logger->stopWork();
 
         to << path;
diff --git a/src/libstore/local-store.hh b/src/libstore/local-store.hh
index 379a06af87de12feb96f37e5f676b5f3b2d047f9..77253fa4a4a8f30ef9e64d38d8fafffb357bb1c7 100644
--- a/src/libstore/local-store.hh
+++ b/src/libstore/local-store.hh
@@ -157,7 +157,7 @@ public:
        true) or simply the contents of a regular file (if recursive ==
        false). */
     Path addToStoreFromDump(const string & dump, const string & name,
-        bool recursive = true, HashType hashAlgo = htSHA256, RepairFlag repair = NoRepair);
+        bool recursive = true, HashType hashAlgo = htSHA256, RepairFlag repair = NoRepair) override;
 
     Path addTextToStore(const string & name, const string & s,
         const PathSet & references, RepairFlag repair) override;
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh
index 250e1a4bcc18f0cd59fc3085505ea08167e8e344..115b23cbf747ea3eabb8bb9dcf4c5131260b6268 100644
--- a/src/libstore/store-api.hh
+++ b/src/libstore/store-api.hh
@@ -422,6 +422,13 @@ public:
         bool recursive = true, HashType hashAlgo = htSHA256,
         PathFilter & filter = defaultPathFilter, RepairFlag repair = NoRepair) = 0;
 
+    // FIXME: remove?
+    virtual Path addToStoreFromDump(const string & dump, const string & name,
+        bool recursive = true, HashType hashAlgo = htSHA256, RepairFlag repair = NoRepair)
+    {
+        throw Error("addToStoreFromDump() is not supported by this store");
+    }
+
     /* Like addToStore, but the contents written to the output path is
        a regular file containing the given string. */
     virtual Path addTextToStore(const string & name, const string & s,