Index: uspace/lib/c/generic/dlfcn.c
===================================================================
--- uspace/lib/c/generic/dlfcn.c	(revision 8aea932685c5efe502aa73a5118f0e8c4eb3e36c)
+++ uspace/lib/c/generic/dlfcn.c	(revision 3e828ea40985ce126affd5d7faa6ba679802b4db)
@@ -45,4 +45,5 @@
 #include <rtld/module.h>
 #include <rtld/rtld.h>
+#include <rtld/rtld_arch.h>
 #include <rtld/symbol.h>
 
@@ -79,5 +80,8 @@
 	sd = symbol_bfs_find(sym_name, (module_t *) mod, &sm);
 	if (sd != NULL) {
-		return symbol_get_addr(sd, sm, __tcb_get());
+		if (elf_st_type(sd->st_info) == STT_FUNC)
+			return func_get_addr(sd, sm);
+		else
+			return symbol_get_addr(sd, sm, __tcb_get());
 	}
 
