Index: uspace/drv/test/test1/test1.c
===================================================================
--- uspace/drv/test/test1/test1.c	(revision 09ab0a9afc9379f1604c0fd75cac2d9287ba022c)
+++ uspace/drv/test/test1/test1.c	(revision 3e40b4e9235e7e81eea2138e19c5b7ce8fe7ebe7)
@@ -176,5 +176,12 @@
 	}
 
-	ddf_fun_add_to_category(fun_a, "virtual");
+	rc = ddf_fun_add_to_category(fun_a, "virtual");
+	if (rc != EOK) {
+		ddf_msg(LVL_ERROR, "Failed adding function 'a' to category "
+		    "'virtual'.");
+		ddf_fun_unbind(fun_a);
+		ddf_fun_destroy(fun_a);
+		goto error;
+	}
 
 	if (str_cmp(dev_name, "test1") == 0) {
Index: uspace/drv/test/test2/test2.c
===================================================================
--- uspace/drv/test/test2/test2.c	(revision 09ab0a9afc9379f1604c0fd75cac2d9287ba022c)
+++ uspace/drv/test/test2/test2.c	(revision 3e40b4e9235e7e81eea2138e19c5b7ce8fe7ebe7)
@@ -140,9 +140,18 @@
 	rc = ddf_fun_bind(fun_a);
 	if (rc != EOK) {
+		ddf_fun_destroy(fun_a);
 		ddf_msg(LVL_ERROR, "Failed binding function 'a'.");
 		return rc;
 	}
 
-	ddf_fun_add_to_category(fun_a, "virtual");
+	rc = ddf_fun_add_to_category(fun_a, "virtual");
+	if (rc != EOK) {
+		ddf_fun_unbind(fun_a);
+		ddf_fun_destroy(fun_a);
+		ddf_msg(LVL_ERROR, "Failed adding function 'a' to category "
+		    "'virtual'.");
+		return rc;
+	}
+
 	test2->fun_a = fun_a;
 
Index: uspace/drv/test/test3/test3.c
===================================================================
--- uspace/drv/test/test3/test3.c	(revision 09ab0a9afc9379f1604c0fd75cac2d9287ba022c)
+++ uspace/drv/test/test3/test3.c	(revision 3e40b4e9235e7e81eea2138e19c5b7ce8fe7ebe7)
@@ -70,4 +70,5 @@
 	errno_t rc;
 	char *fun_name = NULL;
+	bool bound = false;
 
 	if (asprintf(&fun_name, "%s%zu", base_name, index) < 0) {
@@ -91,5 +92,12 @@
 	}
 
-	ddf_fun_add_to_category(fun, class_name);
+	bound = true;
+
+	rc = ddf_fun_add_to_category(fun, class_name);
+	if (rc != EOK) {
+		ddf_msg(LVL_ERROR, "Failed addning function %s to category %s: "
+		    "%s", fun_name, class_name, str_error(rc));
+		goto leave;
+	}
 
 	ddf_msg(LVL_NOTE, "Registered exposed function `%s'.", fun_name);
@@ -98,4 +106,6 @@
 	free(fun_name);
 
+	if (bound)
+		ddf_fun_unbind(fun);
 	if ((rc != EOK) && (fun != NULL)) {
 		ddf_fun_destroy(fun);
