Index: uspace/srv/net/nil/eth/eth.c
===================================================================
--- uspace/srv/net/nil/eth/eth.c	(revision e417b961e64a18ae1b50d3898c8108c524af1400)
+++ uspace/srv/net/nil/eth/eth.c	(revision 5db9084cb9b925c6758f4bc0fac5c31d7125ff35)
@@ -45,26 +45,26 @@
 #include <ipc/services.h>
 
-#include "../../err.h"
-#include "../../messages.h"
-#include "../../modules.h"
-
-#include "../../include/byteorder.h"
-#include "../../include/checksum.h"
-#include "../../include/ethernet_lsap.h"
-#include "../../include/ethernet_protocols.h"
-#include "../../include/protocol_map.h"
-#include "../../include/device.h"
-#include "../../include/netif_interface.h"
-#include "../../include/net_interface.h"
-#include "../../include/nil_interface.h"
-#include "../../include/il_interface.h"
-
-#include "../../structures/measured_strings.h"
-#include "../../structures/packet/packet_client.h"
-
-#include "../nil_module.h"
+#include <net_err.h>
+#include <net_messages.h>
+#include <net_modules.h>
+#include <net_byteorder.h>
+#include <net_checksum.h>
+#include <ethernet_lsap.h>
+#include <ethernet_protocols.h>
+#include <protocol_map.h>
+#include <net_device.h>
+#include <netif_interface.h>
+#include <net_interface.h>
+#include <nil_interface.h>
+#include <il_interface.h>
+#include <adt/measured_strings.h>
+#include <packet/packet_client.h>
 
 #include "eth.h"
 #include "eth_header.h"
+
+/** The module name.
+ */
+#define NAME	"Ethernet protocol"
 
 /** Reserved packet prefix length.
@@ -769,4 +769,72 @@
 }
 
+#ifdef CONFIG_NETWORKING_modular
+
+#include <nil_standalone.h>
+
+/** Default thread for new connections.
+ *
+ *  @param[in] iid The initial message identifier.
+ *  @param[in] icall The initial message call structure.
+ *
+ */
+static void nil_client_connection(ipc_callid_t iid, ipc_call_t * icall)
+{
+	/*
+	 * Accept the connection
+	 *  - Answer the first IPC_M_CONNECT_ME_TO call.
+	 */
+	ipc_answer_0(iid, EOK);
+	
+	while(true) {
+		ipc_call_t answer;
+		int answer_count;
+		
+		/* Clear the answer structure */
+		refresh_answer(&answer, &answer_count);
+		
+		/* Fetch the next message */
+		ipc_call_t call;
+		ipc_callid_t callid = async_get_call(&call);
+		
+		/* Process the message */
+		int res = nil_module_message(callid, &call, &answer, &answer_count);
+		
+		/* End if said to either by the message or the processing result */
+		if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP))
+			return;
+		
+		/* Answer the message */
+		answer_call(callid, res, &answer, answer_count);
+	}
+}
+
+/** Starts the module.
+ *
+ *  @param argc The count of the command line arguments. Ignored parameter.
+ *  @param argv The command line parameters. Ignored parameter.
+ *
+ *  @returns EOK on success.
+ *  @returns Other error codes as defined for each specific module start function.
+ *
+ */
+int main(int argc, char *argv[])
+{
+	ERROR_DECLARE;
+	
+	/* Print the module label */
+	printf("Task %d - %s\n", task_get_id(), NAME);
+	
+	/* Start the module */
+	if (ERROR_OCCURRED(nil_module_start(nil_client_connection))) {
+		printf(" - ERROR %i\n", ERROR_CODE);
+		return ERROR_CODE;
+	}
+	
+	return EOK;
+}
+
+#endif /* CONFIG_NETWORKING_modular */
+
 /** @}
  */
