--- iproute2-3.6.0/configure	2012-10-01 17:39:21.000000000 +0200
+++ src/configure	2013-01-24 00:10:30.956316152 +0100
@@ -189,6 +189,27 @@
 rm -f $TMPDIR/setnstest.c $TMPDIR/setnstest
 }
 
+check_unshare()
+{
+cat >$TMPDIR/unsharetest.c <<EOF
+#include <sched.h>
+int main(int argc, char **argv) 
+{
+	(void)unshare(0);
+	return 0;
+}
+EOF
+gcc -I$INCLUDE -o $TMPDIR/unsharetest $TMPDIR/unsharetest.c > /dev/null 2>&1
+if [ $? -eq 0 ]
+then
+	echo "IP_CONFIG_UNSHARE:=y" >>Config
+	echo "yes"
+else
+	echo "no"
+fi
+rm -f $TMPDIR/unsharetest.c $TMPDIR/unsharetest
+}
+
 check_ipset()
 {
 cat >$TMPDIR/ipsettest.c <<EOF
@@ -241,3 +262,6 @@
 
 echo -n "libc has setns: "
 check_setns
+
+echo -n "libc has unshare: "
+check_unshare
--- iproute2-3.6.0/ip/Makefile	2012-10-01 17:39:21.000000000 +0200
+++ src/ip/Makefile	2013-01-24 00:12:09.466188695 +0100
@@ -13,6 +13,10 @@
 	CFLAGS += -DHAVE_SETNS
 endif
 
+ifeq ($(IP_CONFIG_UNSHARE),y)
+	CFLAGS += -DHAVE_UNSHARE
+endif
+
 ALLOBJ=$(IPOBJ) $(RTMONOBJ)
 SCRIPTS=ifcfg rtpr routel routef
 TARGETS=ip rtmon
--- iproute2-3.11.0/ip/ipnetns.c	2013-09-03 17:23:03.000000000 +0200
+++ src/ip/ipnetns.c	2014-02-13 13:44:04.050420834 +0100
@@ -54,6 +54,18 @@
 }
 #endif /* HAVE_SETNS */
 
+#ifndef HAVE_UNSHARE
+static int unshare(int nstype)
+{
+#ifdef __NR_unshare
+	return syscall(__NR_unshare, nstype);
+#else
+	errno = ENOSYS;
+	return -1;
+#endif
+}
+#endif /* HAVE_UNSHARE */
+
 static int usage(void)
 {
 	fprintf(stderr, "Usage: ip netns list\n");
@@ -458,7 +471,6 @@
 	return -1;
 }
 
-
 static int netns_monitor(int argc, char **argv)
 {
 	char buf[4096];
