diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 9abdc6876a..ac4a74a1a8 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -79,6 +79,12 @@ storagePoolUpdateState(virStoragePoolObjPtr pool)
 {
     bool active;
     virStorageBackendPtr backend;
+    int ret = -1;
+    char *stateFile;
+
+    if (!(stateFile = virFileBuildPath(driver->stateDir,
+                                       pool->def->name, ".xml")))
+        goto error;
 
     if ((backend = virStorageBackendForType(pool->def->type)) == NULL) {
         VIR_ERROR(_("Missing backend %d"), pool->def->type);
@@ -116,7 +122,14 @@ storagePoolUpdateState(virStoragePoolObjPtr pool)
     }
 
     pool->active = active;
+    ret = 0;
  error:
+    if (ret < 0) {
+        if (stateFile)
+            unlink(stateFile);
+    }
+    VIR_FREE(stateFile);
+
     return;
 }