Index: uspace/lib/drv/generic/driver.c
===================================================================
--- uspace/lib/drv/generic/driver.c	(revision b10e9367654be1db117fd7b6a40f9648a2ad5492)
+++ uspace/lib/drv/generic/driver.c	(revision ea4910bfed05043e6107a7bf8389ce3e6adfcf37)
@@ -731,7 +731,6 @@
 		return NULL;
 
-	/* Add one reference that will be dropped by ddf_fun_destroy() */
 	fun->dev = dev;
-	fun_add_ref(fun);
+	dev_add_ref(fun->dev);
 
 	fun->bound = false;
@@ -741,5 +740,5 @@
 		fun->name = str_dup(name);
 		if (fun->name == NULL) {
-			delete_function(fun);
+			fun_del_ref(fun);	/* fun is destroyed */
 			return NULL;
 		}
