diff --git a/package/network/services/lldpd/Makefile b/package/network/services/lldpd/Makefile
index 2a9954cff16ad08702440eac63489c24eb137870..f0983f7ae3e1e72657b3705f40fea554ac4fe5b8 100644
--- a/package/network/services/lldpd/Makefile
+++ b/package/network/services/lldpd/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lldpd
 PKG_VERSION:=0.6.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://media.luffy.cx/files/lldpd
diff --git a/package/network/services/lldpd/files/lldpd.config b/package/network/services/lldpd/files/lldpd.config
index 14ba02fcc42f92d07678900644f8d5ed7b4fcefe..48728e0e11bc787852297dd9abdaf108d64434ac 100644
--- a/package/network/services/lldpd/files/lldpd.config
+++ b/package/network/services/lldpd/files/lldpd.config
@@ -6,3 +6,10 @@ config lldpd config
 	
 	option lldp_class 4
 	option lldp_location "2:FR:6:Commercial Rd:3:Roseville:19:4"
+
+	# if empty, the distribution description is sent
+	#option lldp_description "OpenWrt System"
+
+	# interfaces to listen on
+	list interface "loopback"
+	list interface "lan"
diff --git a/package/network/services/lldpd/files/lldpd.init b/package/network/services/lldpd/files/lldpd.init
index 22cb9db7493bbbaf6f728371c10698885d2d3d05..35999501f9729b1fc0072519fec888ee44f050fa 100644
--- a/package/network/services/lldpd/files/lldpd.init
+++ b/package/network/services/lldpd/files/lldpd.init
@@ -5,13 +5,25 @@ START=90
 
 SERVICE_USE_PID=1
 
+find_release_info()
+{
+	[ -s /etc/openwrt_release ] && . /etc/openwrt_release
+	[ -z "$DISTRIB_DESCRIPTION" ] && [ -s /etc/openwrt_version ] && \
+		DISTRIB_DESCRIPTION="$(cat /etc/openwrt_version)"
+
+	echo "${DISTRIB_DESCRIPTION:-Unknown OpenWrt release} @ $(cat /proc/sys/kernel/hostname)"
+}
+
 start() {
+	. /lib/functions/network.sh
+
 	local enable_cdp
 	local enable_fdp
 	local enable_sonmp
 	local enable_edp
 	local lldp_class
 	local lldp_location
+	local lldp_description
 
 	config_load 'lldpd'
 	config_get_bool enable_cdp 'config' 'enable_cdp' 0
@@ -20,6 +32,18 @@ start() {
 	config_get_bool enable_edp 'config' 'enable_edp' 0
 	config_get lldp_class 'config' 'lldp_class'
 	config_get lldp_location 'config' 'lldp_location'
+	config_get lldp_description 'config' 'lldp_description' "$(find_release_info)"
+
+	local ifaces
+	config_get ifaces 'config' 'interface'
+
+	local iface
+	for iface in $ifaces; do
+		local ifname=""
+		if network_get_device ifname "$iface" || [ -e "/sys/class/net/$iface" ]; then
+			append args "-I ${ifname:-$iface}"
+		fi
+	done
 
 	[ $enable_cdp -gt 0 ] && append args '-c'
 	[ $enable_fdp -gt 0 ] && append args '-f'
@@ -33,7 +57,8 @@ start() {
 	chown lldp:lldp /var/run/lldp
 
 	service_start /usr/sbin/lldpd $args \
-		${lldp_class:+ -M $lldp_class}
+		${lldp_class:+ -M $lldp_class} \
+		${lldp_description:+ -S "$lldp_description"}
 
 	[ -n "$lldp_location" ] && {
 		sleep 1