diff -Nur olsrd-a13bb1c46c3c.orig/src/nameservice.c olsrd-a13bb1c46c3c/src/nameservice.c
--- olsrd-a13bb1c46c3c.orig/src/nameservice.c	2008-05-23 08:40:44.000000000 +0200
+++ olsrd-a13bb1c46c3c/src/nameservice.c	2008-05-23 08:41:12.000000000 +0200
@@ -62,8 +62,8 @@
 
 #include "plugin_util.h"
 #include "nameservice.h"
-#include "mapwrite.h"
-#include "compat.h"
+#include "nameservice_mapwrite.h"
+#include "nameservice_compat.h"
 
 #ifdef SVEN_OLA_UNBLOAT
 #undef OLSR_PRINTF
@@ -286,7 +286,7 @@
     { .name = "",              .set_plugin_parameter = &set_nameservice_host,   .data = &my_names },
 };
 
-void olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size)
+void nm_olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size)
 {
 	*params = plugin_parameters;
 	*size = sizeof(plugin_parameters)/sizeof(*plugin_parameters);
@@ -412,11 +412,11 @@
 
 
 	/* register functions with olsrd */
-	olsr_parser_add_function(&olsr_parser, PARSER_TYPE, 1);
+	olsr_parser_add_function(&nm_olsr_parser, PARSER_TYPE, 1);
 
 	/* periodic message generation */
 	msg_gen_timer = olsr_start_timer(my_interval * MSEC_PER_SEC, EMISSION_JITTER,
-									 OLSR_TIMER_PERIODIC, &olsr_namesvc_gen,
+									 OLSR_TIMER_PERIODIC, &nm_olsr_namesvc_gen,
 									 NULL, 0);
 
 	mapwrite_init(my_latlon_file);
@@ -524,7 +524,7 @@
 			list_node_next = list_node->next;
 
 			db = list2db(list_node);
-			olsr_namesvc_delete_db_entry(db);
+			nm_olsr_namesvc_delete_db_entry(db);
 		}
 	}
 }
@@ -534,7 +534,7 @@
  * The write file timer has fired.
  */
 void
-olsr_expire_write_file_timer(void *context __attribute__((unused)))
+nm_olsr_expire_write_file_timer(void *context __attribute__((unused)))
 {
 	write_file_timer = NULL;
 
@@ -561,14 +561,14 @@
 	}
 
 	write_file_timer = olsr_start_timer(5 * MSEC_PER_SEC, 5, OLSR_TIMER_ONESHOT,
-										olsr_expire_write_file_timer, NULL, 0);
+										nm_olsr_expire_write_file_timer, NULL, 0);
 }
 
 /*
  * Delete and unlink db_entry.
  */
 void
-olsr_namesvc_delete_db_entry(struct db_entry *db)
+nm_olsr_namesvc_delete_db_entry(struct db_entry *db)
 {
 #ifndef NODEBUG
 	struct ipaddr_str strbuf;
@@ -596,14 +596,14 @@
   db = (struct db_entry *)context;
   db->db_timer = NULL; /* be pedandic */
 
-  olsr_namesvc_delete_db_entry(db);
+  nm_olsr_namesvc_delete_db_entry(db);
 }
 
 /**
  * Scheduled event: generate and send NAME packet
  */
 void
-olsr_namesvc_gen(void *foo __attribute__((unused)))
+nm_olsr_namesvc_gen(void *foo __attribute__((unused)))
 {
 	/* send buffer: huge */
 	char buffer[10240];
@@ -663,7 +663,7 @@
  * Parse name olsr message of NAME type
  */
 void
-olsr_parser(union olsr_message *m,
+nm_olsr_parser(union olsr_message *m,
 			struct interface *in_if __attribute__((unused)),
 			union olsr_ip_addr *ipaddr)
 {
diff -Nur olsrd-a13bb1c46c3c.orig/src/nameservice_compat.c olsrd-a13bb1c46c3c/src/nameservice_compat.c
--- olsrd-a13bb1c46c3c.orig/src/nameservice_compat.c	2008-05-23 08:40:44.000000000 +0200
+++ olsrd-a13bb1c46c3c/src/nameservice_compat.c	2008-05-23 08:41:12.000000000 +0200
@@ -1,4 +1,4 @@
-#include "compat.h"
+#include "nameservice_compat.h"
 
 #ifndef linux
 #include <stdlib.h>
diff -Nur olsrd-a13bb1c46c3c.orig/src/nameservice.h olsrd-a13bb1c46c3c/src/nameservice.h
--- olsrd-a13bb1c46c3c.orig/src/nameservice.h	2008-05-23 08:40:44.000000000 +0200
+++ olsrd-a13bb1c46c3c/src/nameservice.h	2008-05-23 08:42:16.000000000 +0200
@@ -45,10 +45,10 @@
 #include "olsr_protocol.h"
 #include "common/list.h"
 
-#include "olsrd_plugin.h"
+#include "nameservice_plugin.h"
 #include "nameservice_msg.h"
 #include "hashing.h"
-#include "mapwrite.h"
+#include "nameservice_mapwrite.h"
 #include "mantissa.h"
 
 #define PLUGIN_NAME	"OLSRD nameservice plugin"
@@ -120,15 +120,15 @@
 extern struct list_node latlon_list[HASHSIZE];
 extern float my_lat, my_lon;
 
-void olsr_expire_write_file_timer(void *);
-void olsr_namesvc_delete_db_entry(struct db_entry *);
+void nm_olsr_expire_write_file_timer(void *);
+void nm_olsr_namesvc_delete_db_entry(struct db_entry *);
 
 /* Parser function to register with the sceduler */
 void
-olsr_parser(union olsr_message *, struct interface *, union olsr_ip_addr *);
+nm_olsr_parser(union olsr_message *, struct interface *, union olsr_ip_addr *);
 
 /* callback for periodic timer */
-void olsr_namesvc_gen(void *);
+void nm_olsr_namesvc_gen(void *);
 
 int
 encap_namemsg(struct namemsg *);
diff -Nur olsrd-a13bb1c46c3c.orig/src/nameservice_mapwrite.c olsrd-a13bb1c46c3c/src/nameservice_mapwrite.c
--- olsrd-a13bb1c46c3c.orig/src/nameservice_mapwrite.c	2008-05-23 08:40:44.000000000 +0200
+++ olsrd-a13bb1c46c3c/src/nameservice_mapwrite.c	2008-05-23 08:41:12.000000000 +0200
@@ -45,7 +45,7 @@
 #include "ipcalc.h"
 #include "lq_plugin.h"
 
-#include "mapwrite.h"
+#include "nameservice_mapwrite.h"
 
 static char my_latlon_str[48];
 
diff -Nur olsrd-a13bb1c46c3c.orig/src/nameservice_plugin.c olsrd-a13bb1c46c3c/src/nameservice_plugin.c
--- olsrd-a13bb1c46c3c.orig/src/nameservice_plugin.c	2008-05-23 08:40:44.000000000 +0200
+++ olsrd-a13bb1c46c3c/src/nameservice_plugin.c	2008-05-23 08:41:12.000000000 +0200
@@ -37,7 +37,7 @@
 #include <stdio.h>
 #include <string.h>
 
-#include "olsrd_plugin.h"
+#include "nameservice_plugin.h"
 #include "nameservice.h"
 
 #define PLUGIN_NAME    "OLSRD nameservice plugin"
@@ -54,14 +54,15 @@
 my_fini(void);
 
 int 
-olsrd_plugin_interface_version(void)
+nm_olsrd_plugin_interface_version(void)
 {
 	return PLUGIN_INTERFACE_VERSION;
 }
 
 int
-olsrd_plugin_init(void)
+nm_olsrd_plugin_init(void)
 {
+	name_constructor();
 	return name_init();
 }
 
@@ -72,7 +73,7 @@
 	/* Print plugin info to stdout */
 	printf("%s\n", MOD_DESC);
 
-	name_constructor();
+//!!!	name_constructor();
   
 	return;
 }
diff -Nur olsrd-a13bb1c46c3c.orig/src/nameservice_plugin.h olsrd-a13bb1c46c3c/src/nameservice_plugin.h
--- olsrd-a13bb1c46c3c.orig/src/nameservice_plugin.h	2008-05-23 08:40:44.000000000 +0200
+++ olsrd-a13bb1c46c3c/src/nameservice_plugin.h	2008-05-23 08:41:12.000000000 +0200
@@ -35,8 +35,8 @@
  * Only the bare minimum
  */
 
-#ifndef _OLSRD_PLUGIN
-#define _OLSRD_PLUGIN
+#ifndef _NM_OLSRD_PLUGIN
+#define _NM_OLSRD_PLUGIN
 
 
 /* Define the most recent version */
@@ -58,14 +58,14 @@
  * Plugin interface version
  * Used by main olsrd to check plugin interface version
  */
-int olsrd_plugin_interface_version(void);
+int nm_olsrd_plugin_interface_version(void);
 
 
 /**
  * Initialize plugin
  * Called after all parameters are passed
  */
-int olsrd_plugin_init(void);
+int nm_olsrd_plugin_init(void);
 
 
 /* Interface version 4 */
@@ -73,10 +73,11 @@
  * Register parameters from config file
  * Called for all plugin parameters
  */
-int olsrd_plugin_register_param(char *key, char *value);
+int nm_olsrd_plugin_register_param(char *key, char *value);
 
 /* Interface version 5 */
 
+#if 0
 typedef union {
     unsigned int ui;
     char *pc;
@@ -90,11 +91,12 @@
     void *data;
     set_plugin_parameter_addon addon;
 };
+#endif
 
 /**
  * Delivers the (address of the) table and the size of the parameter description
  */
-void olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size);
+void nm_olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size);
 
 #endif
 
diff -Nur olsrd-a13bb1c46c3c.orig/src/plugin_loader.c olsrd-a13bb1c46c3c/src/plugin_loader.c
--- olsrd-a13bb1c46c3c.orig/src/plugin_loader.c	2008-05-21 09:09:44.000000000 +0200
+++ olsrd-a13bb1c46c3c/src/plugin_loader.c	2008-05-23 08:41:12.000000000 +0200
@@ -40,6 +40,7 @@
 
 #include "plugin_loader.h"
 #include "olsrd_plugin.h"
+#include "nameservice_plugin.h"
 #include "plugin_util.h"
 #include "defs.h"
 #include "olsr.h"
@@ -90,6 +91,17 @@
 
     OLSR_PRINTF(0, "---------- LOADING LIBRARY %s ----------\n", libname);
 
+    if (0 != strstr(libname, "nameservice")) {
+      OLSR_PRINTF(1, "Subst static nameservice plugin (dlopen does not work on Cadenux)...\n\n");
+      plugin->dlhandle = 0;
+      plugin->plugin_interface_version = nm_olsrd_plugin_interface_version();
+      plugin->plugin_init = nm_olsrd_plugin_init;
+      nm_olsrd_get_plugin_parameters(&plugin->plugin_parameters, &plugin->plugin_parameters_size);
+      rv = 0;
+    }
+    else {
+    // Begin: not the hacked nameservice plugin
+
     plugin->dlhandle = dlopen(libname, RTLD_NOW);
     if(plugin->dlhandle == NULL) {
         const int save_errno = errno;
@@ -100,6 +112,8 @@
     }
 
     rv = olsr_add_dl(plugin);
+    } // End: not the hacked nameservice plugin
+
     if (rv == -1) {
         const int save_errno = errno;
         dlclose(plugin->dlhandle);
