Index: uspace/lib/net/Makefile
===================================================================
--- uspace/lib/net/Makefile	(revision 465c9352c696e6a580ab0e9b1026abf618e6afa0)
+++ uspace/lib/net/Makefile	(revision 018d79b84a1807df9af40b1bc9f07660b929a662)
@@ -50,4 +50,5 @@
 	tl/icmp_client.c \
 	tl/socket_core.c \
+	tl/tl_interface.c \
 	tl/tl_common.c
 
Index: uspace/lib/net/include/tl_interface.h
===================================================================
--- uspace/lib/net/include/tl_interface.h	(revision 465c9352c696e6a580ab0e9b1026abf618e6afa0)
+++ uspace/lib/net/include/tl_interface.h	(revision 018d79b84a1807df9af40b1bc9f07660b929a662)
@@ -27,6 +27,6 @@
  */
 
-/** @addtogroup net_tl
- *  @{
+/** @addtogroup libnet
+ * @{
  */
 
@@ -35,6 +35,6 @@
  */
 
-#ifndef __NET_TL_INTERFACE_H__
-#define __NET_TL_INTERFACE_H__
+#ifndef LIBNET_TL_INTERFACE_H_
+#define LIBNET_TL_INTERFACE_H_
 
 #include <async.h>
@@ -52,26 +52,5 @@
 /*@{*/
 
-/** Notify the remote transport layer modules about the received packet/s.
- *
- * @param[in] tl_phone  The transport layer module phone used for remote calls.
- * @param[in] device_id The device identifier.
- * @param[in] packet    The received packet or the received packet queue.
- *                      The packet queue is used to carry a fragmented
- *                      datagram. The first packet contains the headers,
- *                      the others contain only data.
- * @param[in] target    The target transport layer module service to be
- *                      delivered to.
- * @param[in] error     The packet error reporting service. Prefixes the
- *                      received packet.
- *
- * @return EOK on success.
- *
- */
-inline static int tl_received_msg(int tl_phone, device_id_t device_id,
-    packet_t packet, services_t target, services_t error)
-{
-	return generic_received_msg_remote(tl_phone, NET_TL_RECEIVED, device_id,
-	    packet_get_id(packet), target, error);
-}
+extern int tl_received_msg(int, device_id_t, packet_t, services_t, services_t);
 
 /*@}*/
Index: uspace/lib/net/include/tl_local.h
===================================================================
--- uspace/lib/net/include/tl_local.h	(revision 465c9352c696e6a580ab0e9b1026abf618e6afa0)
+++ uspace/lib/net/include/tl_local.h	(revision 018d79b84a1807df9af40b1bc9f07660b929a662)
@@ -27,10 +27,10 @@
  */
 
-/** @addtogroup tl_local
- *  @{
+/** @addtogroup libnet
+ * @{
  */
 
-#ifndef __TL_LOCAL_H__
-#define __TL_LOCAL_H__
+#ifndef LIBNET_TL_LOCAL_H_
+#define LIBNET_TL_LOCAL_H_
 
 #include <ipc/ipc.h>
Index: uspace/lib/net/tl/tl_interface.c
===================================================================
--- uspace/lib/net/tl/tl_interface.c	(revision 018d79b84a1807df9af40b1bc9f07660b929a662)
+++ uspace/lib/net/tl/tl_interface.c	(revision 018d79b84a1807df9af40b1bc9f07660b929a662)
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2009 Lukas Mejdrech
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libnet
+ * @{
+ */
+
+#include <tl_interface.h>
+#include <generic.h>
+#include <packet_client.h>
+
+#include <ipc/services.h>
+#include <ipc/tl.h>
+
+#include <net/device.h>
+#include <net/packet.h>
+
+/** Notify the remote transport layer modules about the received packet/s.
+ *
+ * @param[in] tl_phone  The transport layer module phone used for remote calls.
+ * @param[in] device_id The device identifier.
+ * @param[in] packet    The received packet or the received packet queue.
+ *                      The packet queue is used to carry a fragmented
+ *                      datagram. The first packet contains the headers,
+ *                      the others contain only data.
+ * @param[in] target    The target transport layer module service to be
+ *                      delivered to.
+ * @param[in] error     The packet error reporting service. Prefixes the
+ *                      received packet.
+ *
+ * @return EOK on success.
+ *
+ */
+int
+tl_received_msg(int tl_phone, device_id_t device_id, packet_t packet,
+    services_t target, services_t error)
+{
+	return generic_received_msg_remote(tl_phone, NET_TL_RECEIVED, device_id,
+	    packet_get_id(packet), target, error);
+}
+
+/** @}
+ */
