diff --git a/src/storage_driver.c b/src/storage_driver.c
index 2432a9a..330317c 100644
--- a/src/storage_driver.c
+++ b/src/storage_driver.c
@@ -544,12 +544,13 @@ storagePoolDefine(virConnectPtr conn,
 
     if (!(pool = virStoragePoolObjAssignDef(conn, &driver->pools, def)))
         goto cleanup;
-    def = NULL;
 
     if (virStoragePoolObjSaveDef(conn, driver, pool, def) < 0) {
         virStoragePoolObjRemove(&driver->pools, pool);
+        def = NULL;
         goto cleanup;
     }
+    def = NULL;
 
     ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
 
