diff --git a/daemon/Makefile b/daemon/Makefile
index e985bd2..a5d3dd6 100644
--- a/daemon/Makefile
+++ b/daemon/Makefile
@@ -7,7 +7,16 @@ CFLAGS+=	`pkg-config --cflags openssl`
 CFLAGS+=	`pcre-config --cflags`
 CFLAGS+=	-I/lib/modules/`uname -r`/build/include/ -I../kernel-module/
 CFLAGS+=	-D_GNU_SOURCE
-CFLAGS+=	-DMEDIAPROXY_VERSION="\"$(shell dpkg-parsechangelog -l../debian/changelog | awk '/^Version: / {print $$2}')\""
+ifneq ($(MEDIAPROXY_VERSION),)
+  CFLAGS+=	-DMEDIAPROXY_VERSION="\"$(MEDIAPROXY_VERSION)\""
+else
+  DPKG_PRSCHNGLG= $(shell which dpkg-parsechangelog 2>/dev/null)
+  ifneq ($(DPKG_PRSCHNGLG),)
+    CFLAGS+=	-DMEDIAPROXY_VERSION="\"$(shell dpkg-parsechangelog -l../debian/changelog | awk '/^Version: / {print $$2}')\""
+  else
+    CFLAGS+=	-DMEDIAPROXY_VERSION="\"undefined\""
+  endif
+endif
 CFLAGS+=	-DMP_PLUGIN_DIR="\"/usr/lib/mediaproxy-ng\""
 
 #CFLAGS+=	-DSRTCP_KEY_DERIVATION_RFC_COMPLIANCE
@@ -27,10 +36,13 @@ LDFLAGS+=	`pcre-config --libs`
 LDFLAGS+=	`xmlrpc-c-config client --libs`
 
 ifneq ($(DBG),yes)
-# support http://wiki.debian.org/Hardening for >=wheezy
-CFLAGS+=        `dpkg-buildflags --get CFLAGS`
-CPPFLAGS+=      `dpkg-buildflags --get CPPFLAGS`
-LDFLAGS+=       `dpkg-buildflags --get LDFLAGS`
+  DPKG_BLDFLGS=	$(shell which dpkg-buildflags 2>/dev/null)
+  ifneq ($(DPKG_BLDFLGS),)
+    # support http://wiki.debian.org/Hardening for >=wheezy
+    CFLAGS+=	`dpkg-buildflags --get CFLAGS`
+    CPPFLAGS+=	`dpkg-buildflags --get CPPFLAGS`
+    LDFLAGS+=	`dpkg-buildflags --get LDFLAGS`
+  endif
 endif
 
 SRCS=		main.c kernel.c poller.c aux.c control_tcp.c streambuf.c call.c control_udp.c redis.c \
diff --git a/el/README.md b/el/README.md
new file mode 100644
index 0000000..05752f0
--- /dev/null
+++ b/el/README.md
@@ -0,0 +1,120 @@
+mediaproxy-ng for Enterprise Linux
+==================================
+
+Installing from RPMs
+--------------------
+
+There are three RPMs:
+
+- *ngcp-mediaproxy-ng*: the userspace daemon
+- *ngcp-mediaproxy-ng-kernel*: the iptables plugin
+- *ngcp-mediaproxy-ng-dkms*: the kernel module source
+
+All of the RPMs have correctly set dependencies and if you just want the
+userspace daemon you can install it with yum (assuming you have access to a
+CentOS repository).
+
+The *ngcp-mediaproxy-ng-kernel* package is dependent on the
+*ngcp-mediaproxy-ng*, and *ngcp-mediaproxy-ng-dkms* packages. The
+*ngcp-mediaproxy-ng-dkms* package has a dependency (DKMS) that cannot be met
+by the standard CentOS repository. If you want to use in-kernel forwarding you
+need to download and install the latest version of the
+[*dkms*](http://linux.dell.com/dkms/) package before attempting to install
+*ngcp-mediaproxy-ng-dkms* or *ngcp-mediaproxy-ng-kernel*.
+
+Note: installing *ngcp-mediaproxy-ng-dkms* builds a kernel module which requires
+the sources for the running kernel. The *kernel-devel* and *kernel-headers*
+packages are meta-packages that install the headers and source for the latest
+kernel version. This will be what what you want unless you are running a custom
+or older kernel. *ngcp-mediaproxy-ng-dkms* does not have *kernel-devel* and
+*kernel-headers* as dependencies as this could cause problems if you are using
+a custom or older kernel, so you need to install these manually.
+
+
+RPM Compliation
+---------------
+
+To build the RPMs you need all of the packages listed in the Manual Compilation
+section (except for *kernel-devel* and *kernel-headers*) plus:
+
+- *redhat-rpm-config*
+- *rpm-build*
+
+To build the RPMs:
+- Checkout (clone) the Git repository
+- Create the `~/rpmbuild/SOURCES` directory
+- Create a tar archive.  For example, from within the cloned directory you can
+  use
+  `git archive --output ~/rpmbuild/SOURCES/ngcp-mediaproxy-ng-<version number>.tar.gz --prefix=ngcp-mediaproxy-ng-<version number>/ master`
+  where `<version number>` is the version number of the master branch
+- Build the RPMs. For example,
+   `rpmbuild -ta ~/rpmbuild/SOURCES/ngcp-mediaproxy-ng-<version number>.tar.gz`
+
+Once the build has completed the binary RPMs will be in `~/rpmbuild/RPMS`.
+
+
+Manual Compilation
+------------------
+
+There are three parts to mediaproxy-ng, each of which can be found in the
+respective subdirectories.
+
+* `daemon`
+
+	The userspace daemon and workhorse, minimum requirement for anything
+	to work. Running `MEDIAPROXY_VERSION="\"<version number>\"" make` will
+	compile the binary, which will be called `mediaproxy-ng`. The
+	following software packages are required to compile the daemon:
+
+	- *gcc*
+	- *make*
+	- *pkgconfig*
+	- *glib2-devel*
+	- *libcurl-devel*
+	- *openssl-devel*
+	- *pcre-devel*
+	- *xmlrpc-c-devel*
+	- *zlib-devel*
+
+* `iptables-extension`
+
+	Required for in-kernel packet forwarding. Running
+	`MEDIAPROXY_VERSION="\"<version number>\"" make` will compile the plugin
+	for `iptables` and `ip6tables`. The file will be called
+	`libxt_MEDIAPROXY.so` and should be copied into the directory
+	`/lib/xtables/` in 32-bit environments and `/lib64/xtables/` in 64-bit
+	environments. The following software packages are required to compile
+	the plugin:
+
+	- *gcc*
+	- *make*
+	- *iptables-devel*
+
+* `kernel-module`
+
+	Required for in-kernel packet forwarding. Compilation of the kernel
+	module requires the kernel development packages for the kernel version
+	you are using (see output of `uname -r`) to be installed. Running
+	`MEDIAPROXY_VERSION="\"<version number>\"" make` will compile the kernel
+	module.
+
+	Successful compilation of the module will produce the file
+	`xt_MEDIAPROXY.ko`. The module can be inserted into the running kernel
+	manually through `insmod xt_MEDIAPROXY.ko` (which will result in an
+	error if depending modules aren't loaded, for example the `x_tables`
+	module), but it's recommended to copy the module into
+	`/lib/modules/<version number>/updates/`, followed by running
+	`depmod -a`. After this, the module can be loaded by issuing
+	`modprobe xt_MEDIAPROXY`.
+
+	The following software packages are required to compile the plugin:
+
+	- *gcc*
+	- *make*
+	- *kernel-devel*
+	- *kernel-headers*
+
+	Note: the *kernel-devel* and *kernel-headers* packages are meta-packages
+	that install the headers and source for the latest kernel version. This
+	will be what you want unless you are running a custom or older kernel.
+
diff --git a/el/mediaproxy-ng.init b/el/mediaproxy-ng.init
new file mode 100644
index 0000000..dc13d99
--- /dev/null
+++ b/el/mediaproxy-ng.init
@@ -0,0 +1,210 @@
+#!/bin/bash
+#
+# mediaproxy-ng		Startup script for NGCP mediaproxy-ng
+#
+# chkconfig: 345 84 16
+# description: NGCP mediaproxy-ng
+#
+# processname: mediaproxy-ng
+# config: /etc/sysconfig/mediaproxy-ng
+# pidfile: /var/run/mediaproxy-ng.pid
+#
+### BEGIN INIT INFO
+# Provides: mediaproxy-ng
+# Required-Start: $local_fs $network
+# Short-Description: NGCP mediaproxy-ng
+# Description: NGCP mediaproxy-ng 
+### END INIT INFO
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+if [ -f /etc/sysconfig/mediaproxy-ng ]
+then
+        . /etc/sysconfig/mediaproxy-ng
+else
+	echo "Error: /etc/sysconfig/mediproxy-ng not present"
+	exit -1
+fi
+
+mediaproxy_ng=/usr/sbin/mediaproxy-ng
+prog=mediaproxy-ng
+pidfile=${PIDFILE-/var/run/mediaproxy-ng.pid}
+lockfile=${LOCKFILE-/var/lock/subsys/mediaproxy-ng}
+cachefile=/var/lib/mediaproxy-ng/mediaproxy-ng.cfg
+RETVAL=0
+
+OPTS="--pidfile $pidfile"
+MODULE=0
+IP6=0
+
+build_opts() {
+	shopt -s nocasematch
+	RPMS=`rpm -qa | grep ngcp-mediaproxy-ng-kernel`
+	if [[ "$KERNEL" == "yes" && -n "$TABLE" && -n "$RPMS" ]]
+	then
+		MODULE=1
+		OPTS+=" --table=$TABLE"
+	else
+		MODULE=0
+		OPTS+=" --table=-1"
+	fi
+
+	if [[ "$FALLBACK" != "yes" ]]
+	then
+		OPTS+=" --no-fallback"
+	fi
+	shopt -u nocasematch
+
+	if [[ -n "$RTP_IP" ]]
+	then
+		OPTS+=" --ip=$RTP_IP"
+	fi
+
+	if [[ -n "$RTP_ADV_IP" ]]
+	then
+		OPTS+=" --advertised-ip=$RTP_ADV_IP"
+	fi
+
+	if [[ -n "$RTP_IP6" ]]
+	then
+		OPTS+=" --ip6=$RTP_IP6"
+		IP6=1
+	fi
+
+	if [[ -n "$RTP_ADV_IP6" ]]
+	then
+		OPTS+=" --advertised-ip6=$RTP_ADV_IP6"
+	fi
+
+	if [[ -n "$LISTEN_TCP" ]]
+	then
+		OPTS+=" --listen-tcp=$LISTEN_TCP"
+	fi
+
+	if [[ -n "$LISTEN_UDP" ]]
+	then
+		OPTS+=" --listen-udp=$LISTEN_UDP"
+	fi
+
+	if [[ -n "$LISTEN_NG" ]]
+	then
+		OPTS+=" --listen-ng=$LISTEN_NG"
+	fi
+
+	if [[ -n "$TOS" ]]
+	then
+		OPTS+=" --tos=$TOS"
+	fi
+
+	if [[ -n "$TIMEOUT" ]]
+	then
+		OPTS+=" --timeout=$TIMEOUT"
+	fi
+
+	if [[ -n "$SILENT_TIMEOUT" ]]
+	then
+		OPTS+=" --silent-timeout=$SILENT_TIMEOUT"
+	fi
+
+	if [[ -n "$PORT_MIN" ]]
+	then
+		OPTS+=" --port-min=$PORT_MIN"
+	fi
+
+	if [[ -n "$PORT_MAX" ]]
+	then
+		OPTS+=" --port-max=$PORT_MAX"
+	fi
+
+	if [[ -n "$REDIS" ]]
+	then
+		OPTS+=" --redis=$REDIS"
+	fi
+
+	if [[ -n "$REDIS_DB" ]]
+	then
+		OPTS+=" --redis-db=$REDIS_DB"
+	fi
+
+	if [[ -n "$B2B_URL" ]]
+	then
+		OPTS+=" --b2b-url=$B2B_URL"
+	fi
+}
+
+start() {
+	build_opts
+	if [[ $MODULE == 1 ]]
+	then
+		echo "Loading module for in-kernel packet forwarding"
+		modprobe xt_MEDIAPROXY
+		iptables -I INPUT -p udp -j MEDIAPROXY --id $TABLE
+		if [[ IP6 == 1 ]]
+		then
+    			ip6tables -I INPUT -p udp -j MEDIAPROXY --id $TABLE
+  		fi
+
+		cat <<EOF > "$cachefile"
+CUR_TABLE=$TABLE
+CUR_IP6=$IP6
+EOF
+	fi
+        echo -n $"Starting $prog: "
+        daemon --pidfile=${pidfile} $mediaproxy_ng $OPTS
+        RETVAL=$?
+        echo
+        [ $RETVAL = 0 ] && touch ${lockfile}
+        return $RETVAL
+}
+
+stop() {
+	echo -n $"Stopping $prog: "
+	killproc -p ${pidfile} $mediaproxy_ng
+	RETVAL=$?
+	echo
+	if [ -f "$cachefile" ]
+	then
+		. "$cachefile"
+		echo "Unloading module for in-kernel packet forwarding"
+		echo "del $TABLE" > /proc/mediaproxy/control
+		iptables -D INPUT -p udp -j MEDIAPROXY --id $CUR_TABLE
+		if [[ CUR_IP6 == 1 ]]
+		then
+    			ip6tables -D INPUT -p udp -j MEDIAPROXY --id $CUR_TABLE
+  		fi
+#		rmmod xt_MEDIAPROXY
+		rm -f $cachefile	
+	fi
+ 
+	[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
+}
+
+# See how we were called.
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  status)
+        status -p ${pidfile} $mediaproxy_ng
+	RETVAL=$?
+	;;
+  restart)
+	stop
+	start
+	;;
+  condrestart|try-restart)
+	if status -p ${pidfile} $mediaproxy_ng >&/dev/null; then
+		stop
+		start
+	fi
+	;;
+  *)
+	echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|status}"
+	RETVAL=2
+esac
+
+exit $RETVAL
diff --git a/el/mediaproxy-ng.spec b/el/mediaproxy-ng.spec
new file mode 100644
index 0000000..1fae138
--- /dev/null
+++ b/el/mediaproxy-ng.spec
@@ -0,0 +1,174 @@
+Name:		ngcp-mediaproxy-ng
+Version:	2.3.0
+Release:	1%{?dist}
+Summary:	The Sipwise NGCP mediaproxy-ng
+
+Group:		System Environment/Daemons
+License:	unknown
+URL:		https://github.com/crocodilertc/mediaproxy-ng
+Source:		%{name}-%{version}.tar.gz
+Conflicts:	%{name}-kernel < %{version}
+BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+
+BuildRequires:	gcc make pkgconfig redhat-rpm-config
+BuildRequires:	glib2-devel libcurl-devel openssl-devel pcre-devel
+BuildRequires:	xmlrpc-c-devel zlib-devel
+Requires:	glibc libcurl openssl pcre xmlrpc-c
+
+
+%description
+The Sipwise NGCP mediaproxy-ng is a proxy for RTP traffic and other UDP based
+media traffic. It's meant to be used with the Kamailio SIP proxy and forms a
+drop-in replacement for any of the other available RTP and media proxies.
+
+
+%package kernel
+Summary:	NGCP mediaproxy-ng in-kernel packet forwarding
+Group:		System Environment/Daemons
+BuildRequires:	gcc make redhat-rpm-config iptables-devel
+Requires:	iptables iptables-ipv6 ngcp-mediaproxy-ng = %{version}
+Requires:	ngcp-mediaproxy-ng-dkms = %{version}
+
+%description kernel
+NGCP mediaproxy-ng in-kernel packet forwarding
+
+
+%package dkms
+Summary:	Kernel module for NGCP mediaproxy-ng in-kernel packet forwarding
+Group:		System Environment/Daemons
+BuildArch:	noarch
+BuildRequires:	redhat-rpm-config
+Requires:	gcc make
+Requires(post):	dkms
+Requires(preun): dkms
+
+%description dkms
+Kernel module for mediaproxy-ng in-kernel packet forwarding
+
+
+%prep
+%setup -q
+
+
+%build
+cd daemon
+MEDIAPROXY_VERSION="\"%{version}-%{release}\"" make
+cd ../iptables-extension
+MEDIAPROXY_VERSION="\"%{version}-%{release}\"" make
+cd ..
+
+
+%install
+[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
+
+# Install the userspace daemon
+mkdir -p $RPM_BUILD_ROOT/%{_sbindir}
+install -m755 daemon/mediaproxy-ng $RPM_BUILD_ROOT/%{_sbindir}/mediaproxy-ng
+
+## Install the init.d script and configuration file
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d
+install -m755 el/mediaproxy-ng.init \
+	$RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/mediaproxy-ng
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig
+install -m644 el/mediaproxy-ng.sysconfig \
+	$RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/mediaproxy-ng
+mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/mediaproxy-ng
+
+# Install the iptables plugin
+mkdir -p $RPM_BUILD_ROOT/%{_lib}/xtables
+install -m755 iptables-extension/libxt_MEDIAPROXY.so \
+	$RPM_BUILD_ROOT/%{_lib}/xtables/libxt_MEDIAPROXY.so
+
+# Install the documentation
+mkdir -p $RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version}-%{release}
+install -m644 README.md \
+	$RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version}-%{release}/README.md
+install -m644 debian/changelog \
+	$RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version}-%{release}/changelog
+install -m644 debian/copyright \
+	$RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version}-%{release}/copyright
+install -m644 el/README.md \
+	$RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version}-%{release}/README.el.md
+
+## DKMS module source install
+mkdir -p $RPM_BUILD_ROOT/%{_usrsrc}/%{name}-%{version}-%{release}
+install -m644 kernel-module/Makefile \
+	 $RPM_BUILD_ROOT/%{_usrsrc}/%{name}-%{version}-%{release}/Makefile
+install -m644 kernel-module/xt_MEDIAPROXY.c \
+	 $RPM_BUILD_ROOT/%{_usrsrc}/%{name}-%{version}-%{release}/xt_MEDIAPROXY.c
+install -m644 kernel-module/xt_MEDIAPROXY.h \
+	 $RPM_BUILD_ROOT/%{_usrsrc}/%{name}-%{version}-%{release}/xt_MEDIAPROXY.h
+sed "s/__VERSION__/%{version}-%{release}/g" debian/dkms.conf.in > \
+	$RPM_BUILD_ROOT/%{_usrsrc}/%{name}-%{version}-%{release}/dkms.conf
+
+
+%clean
+rm -rf %{buildroot}
+
+
+%pre
+/usr/sbin/groupadd -r mediaproxy-ng 2> /dev/null || :
+/usr/sbin/usradd -r -g mediaproxy-ng -s /bin/false -c "mediaproxy-ng daemon" \
+	-d %{_docdir}/%{name}-%{version}-%{release} mediaproxy-ng \
+	2> /dev/null || :
+
+
+%post
+/sbin/chkconfig --add mediaproxy-ng
+
+
+%post dkms
+# Add to DKMS registry, build, and install module
+dkms add -m %{name} -v %{version}-%{release} --rpm_safe_upgrade &&
+dkms build -m %{name} -v %{version}-%{release} --rpm_safe_upgrade &&
+dkms install -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --force
+true
+
+
+%preun
+/sbin/service mediaproxy-ng stop
+/sbin/chkconfig --del mediaproxy-ng
+
+
+%preun dkms
+# Remove from DKMS registry
+dkms remove -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --all
+true
+
+
+%files
+%defattr(-,root,root,-)
+# Userspace daemon
+%{_sbindir}/mediaproxy-ng
+
+# init.d script and configuration file
+%{_sysconfdir}/rc.d/init.d/mediaproxy-ng
+%config(noreplace) %{_sysconfdir}/sysconfig/mediaproxy-ng
+%dir %{_sharedstatedir}/mediaproxy-ng
+
+# Documentation
+%dir %{_docdir}/%{name}-%{version}-%{release}
+%doc %{_docdir}/%{name}-%{version}-%{release}/README.md
+%doc %{_docdir}/%{name}-%{version}-%{release}/changelog
+%doc %{_docdir}/%{name}-%{version}-%{release}/copyright
+%doc %{_docdir}/%{name}-%{version}-%{release}/README.el.md
+
+
+%files kernel
+%defattr(-,root,root,-)
+/%{_lib}/xtables/libxt_MEDIAPROXY.so
+
+
+%files dkms
+%defattr(-,root,root,0755)
+%{_usrsrc}/%{name}-%{version}-%{release}/
+
+
+%changelog
+* Thu Aug 15 2013 Peter Dunkley <peter.dunkley@crocodilertc.net>
+  - init.d scripts and configuration file
+* Wed Aug 14 2013 Peter Dunkley <peter.dunkley@crocodilertc.net>
+  - First version of .spec file
+  - Builds and installs userspace daemon (but no init.d scripts etc yet)
+  - Builds and installs the iptables plugin
+  - DKMS package for the kernel module
diff --git a/el/mediaproxy-ng.sysconfig b/el/mediaproxy-ng.sysconfig
new file mode 100644
index 0000000..b88d3a5
--- /dev/null
+++ b/el/mediaproxy-ng.sysconfig
@@ -0,0 +1,38 @@
+# For more information on configuring mediaproxy-ng see
+# http://github.com/sipwise/mediproxy-ng
+#
+# (m) means the item is mandatory, (o) means the item is optional
+#
+KERNEL=yes		# (m) "yes" enable in-kernel forwarding, "no" disables
+TABLE=0			# (o) iptables table for in-kernel forwarding rules
+			#     comment out when "KERNEL=no"
+FALLBACK=yes		# (m) "yes" enables fallback to userspace forwarding
+			#     only, "no" disables
+RTP_IP=127.0.0.1	# (m) Local IPv4 address for packet forwarding
+#RTP_ADV_IP=127.0.0.1	# (o) IPv4 address to "advertise" for packet forwarding
+#RTP_IP6=::1		# (o) Local IPv6 address for packet forwarding
+#RTP_ADV_IP6=::1	# (o) IPv6 address to "advertise" for packet forwarding
+#
+# At least one of LISTEN_(TCP|UDP|NG) is required
+#LISTEN_TCP=127.0.0.1:2222	# IP address and port combination for TCP
+				# control
+LISTEN_UDP=127.0.0.1:2222	# IP address and port combination for UDP
+				# control
+#LISTEN_NG=127.0.0.1:2223 	# IP address and port combination for NG (UDP)
+				# control
+#
+#TOS=184		# (o) TOS value to use in outgoing packets
+#TIMEOUT=60		# (o) Number of seconds after which a media stream is
+			#     considered dead if there is no traffic.
+			#     Default: 60
+#SILENT_TIMEOUT=3600	# (o) Number of seconds after which a muted or inactive
+			#     stream is considered dead. Default: 3600
+#PORT_MIN=30000		# (o) Lowest port in the local port range for media
+			#     traffic. Default: 30000
+#PORT_MAX=40000		# (o) Highest port in the local port range for media
+			#     traffic. Default: 40000 
+#
+# The following items are for use with NGCP
+#REDIS=127.0.0.1:6379
+#REDIS_DB=0
+#B2B_URL=http://127.0.0.1:8080/xmlrpc
diff --git a/iptables-extension/Makefile b/iptables-extension/Makefile
index d84fa7b..6607678 100644
--- a/iptables-extension/Makefile
+++ b/iptables-extension/Makefile
@@ -1,5 +1,14 @@
 CFLAGS		= -O2 -Wall -shared -fPIC
-CFLAGS		+= -DMEDIAPROXY_VERSION="\"$(shell dpkg-parsechangelog -l../debian/changelog | awk '/^Version: / {print $$2}')\""
+ifneq ($(MEDIAPROXY_VERSION),)
+  CFLAGS	+= -DMEDIAPROXY_VERSION="\"$(MEDIAPROXY_VERSION)\""
+else
+  DPKG_PRSCHNGLG= $(shell which dpkg-parsechangelog 2>/dev/null)
+  ifneq ($(DPKG_PRSCHNGLG),)
+    CFLAGS	+= -DMEDIAPROXY_VERSION="\"$(shell dpkg-parsechangelog -l../debian/changelog | awk '/^Version: / {print $$2}')\""
+  else
+    CFLAGS	+= -DMEDIAPROXY_VERSION="\"undefined\""
+  endif
+endif
 
 XTABLES		= $(shell test -e /usr/include/xtables.h && echo 1)
 IPTABLES	= $(shell test -e /usr/include/iptables.h && echo 1)
diff --git a/kernel-module/Makefile b/kernel-module/Makefile
index bed10cc..6394c5f 100644
--- a/kernel-module/Makefile
+++ b/kernel-module/Makefile
@@ -1,11 +1,18 @@
 PWD    := $(shell pwd)
 KSRC   ?= /lib/modules/$(shell uname -r)/build
 KBUILD := $(KSRC)
-ifeq ($(origin MEDIAPROXY_VERSION), undefined)
-MEDIAPROXY_VERSION := $(shell dpkg-parsechangelog -l../debian/changelog | awk '/^Version: / {print $$2}')
-export MEDIAPROXY_VERSION
+
+ifneq ($(MEDIAPROXY_VERSION),)
+  EXTRA_CFLAGS += -DMEDIAPROXY_VERSION="\"$(MEDIAPROXY_VERSION)\""
+else
+  DPKG_PRSCHNGLG= $(shell which dpkg-parsechangelog 2>/dev/null)
+  ifneq ($(DPKG_PRSCHNGLG),)
+    EXTRA_CFLAGS += -DMEDIAPROXY_VERSION="\"$(shell dpkg-parsechangelog -l../debian/changelog | awk '/^Version: / {print $$2}')\""
+  else
+    EXTRA_CFLAGS += -DMEDIAPROXY_VERSION="\"undefined\""
+  endif
 endif
-EXTRA_CFLAGS += -DMEDIAPROXY_VERSION="\"$(MEDIAPROXY_VERSION)\"" -D__MP_EXTERNAL
+EXTRA_CFLAGS += -D__MP_EXTERNAL
 
 obj-m        += xt_MEDIAPROXY.o