Index: uspace/lib/drv/generic/driver.c
===================================================================
--- uspace/lib/drv/generic/driver.c	(revision 21d3201a912240b314cd578152eb84938b5b26d5)
+++ uspace/lib/drv/generic/driver.c	(revision 3612e9f8126bbcbc04b62e5b2f09a5a874e71011)
@@ -733,7 +733,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;
@@ -743,5 +742,5 @@
 		fun->name = str_dup(name);
 		if (fun->name == NULL) {
-			delete_function(fun);
+			fun_del_ref(fun);	/* fun is destroyed */
 			return NULL;
 		}
