Index: uspace/drv/isa/isa.c
===================================================================
--- uspace/drv/isa/isa.c	(revision 97a62fec5ae8981a95bc5036a2fda4084d6bea01)
+++ uspace/drv/isa/isa.c	(revision cd0684db79e00ab134a988e66f3c68b8b17e2ffd)
@@ -44,4 +44,5 @@
 #include <stdlib.h>
 #include <str.h>
+#include <str_error.h>
 #include <ctype.h>
 #include <macros.h>
@@ -324,4 +325,5 @@
 	int score = 0;
 	char *end = NULL;
+	int rc;
 
 	val = skip_spaces(val);
@@ -334,11 +336,4 @@
 	}
 
-	match_id_t *match_id = create_match_id();
-	if (match_id == NULL) {
-		printf(NAME " : failed to allocate match id for function %s.\n",
-		    fun->fnode->name);
-		return;
-	}
-
 	val = skip_spaces(end);
 	get_match_id(&id, val);
@@ -346,14 +341,13 @@
 		printf(NAME " : error - could not read match id for "
 		    "function %s.\n", fun->fnode->name);
-		delete_match_id(match_id);
 		return;
 	}
-
-	match_id->id = id;
-	match_id->score = score;
 
 	printf(NAME ": adding match id '%s' with score %d to function %s\n", id,
 	    score, fun->fnode->name);
-	add_match_id(&fun->fnode->match_ids, match_id);
+
+	rc = ddf_fun_add_match_id(fun->fnode, id, score);
+	if (rc != EOK)
+		printf(NAME ": error adding match ID: %s\n", str_error(rc));
 }
 
