Index: uspace/lib/c/generic/devman.c
===================================================================
--- uspace/lib/c/generic/devman.c	(revision 3abfe9a8c876edadf93ecfc3c4742d4266d6e1b5)
+++ uspace/lib/c/generic/devman.c	(revision 3fddb5559993a79e510f36b064e18bcfbab23a0a)
@@ -147,6 +147,4 @@
 		ret = devman_send_match_id(phone, match_id);
 		if (ret != EOK) {
-			printf("Driver failed to send match id, error %d\n",
-			    ret);
 			return ret;
 		}
@@ -195,5 +193,5 @@
 	}
 	
-	devman_send_match_ids(phone, match_ids);
+	int match_ids_rc = devman_send_match_ids(phone, match_ids);
 	
 	async_wait_for(req, &retval);
@@ -201,4 +199,9 @@
 	async_serialize_end();
 	
+	/* Prefer the answer to DEVMAN_ADD_FUNCTION in case of errors. */
+	if ((match_ids_rc != EOK) && (retval == EOK)) {
+		retval = match_ids_rc;
+	}
+
 	if (retval == EOK)
 		fun_handle = (int) IPC_GET_ARG1(answer);
