Index: uspace/srv/volsrv/volume.c
===================================================================
--- uspace/srv/volsrv/volume.c	(revision 63c1dd5baed77410998be60405abb3b36a7a56b3)
+++ uspace/srv/volsrv/volume.c	(revision 84876aa4f80a43fe7bb9c01fbe376d900db1cbe4)
@@ -367,8 +367,6 @@
 	if (refcount_down(&volume->refcnt)) {
 		/* No more references. Check if volume is persistent. */
-		if (!vol_volume_is_persist(volume)) {
-			list_remove(&volume->lvolumes);
-			vol_volume_delete(volume);
-		}
+		list_remove(&volume->lvolumes);
+		vol_volume_delete(volume);
 	}
 }
@@ -399,4 +397,7 @@
 		/* Volume is now persistent */
 		if (volume->nvolume == NULL) {
+			/* Prevent volume from being freed */
+			refcount_up(&volume->refcnt);
+
 			/* Create volume node */
 			rc = sif_trans_begin(volume->volumes->repo, &trans);
@@ -426,4 +427,7 @@
 			volume->nvolume = nvolume;
 		} else {
+			/* Allow volume to be freed */
+			vol_volume_del_ref(volume);
+
 			/* Update volume node */
 			rc = sif_trans_begin(volume->volumes->repo, &trans);
