diff -uprN bird-1.3.11-4-/sysdep/unix/io.c bird-1.3.11-4/sysdep/unix/io.c
--- bird-1.3.11-4-/sysdep/unix/io.c	2013-07-28 20:48:28.000000000 +0200
+++ bird-1.3.11-4/sysdep/unix/io.c	2013-09-13 18:29:08.000000000 +0200
@@ -1181,6 +1181,12 @@ sk_open(sock *s)
 	  port = s->sport;
 	  if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) < 0)
 	    ERR("SO_REUSEADDR");
+	
+	  if (type == SK_UDP)
+	  {
+	    if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &one, sizeof(one)) < 0)
+	      ERR("SO_REUSEPORT");
+	  }
 	}
       fill_in_sockaddr(&sa, s->saddr, s->iface, port);
       if (bind(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0)
