diff --git a/target/linux/ar7/patches-2.6.32/160-vlynq_try_remote_first.patch b/target/linux/ar7/patches-2.6.32/160-vlynq_try_remote_first.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b1adb6fc6e0ae69f9b5dfcf605dec128aa2eedac
--- /dev/null
+++ b/target/linux/ar7/patches-2.6.32/160-vlynq_try_remote_first.patch
@@ -0,0 +1,20 @@
+--- a/drivers/vlynq/vlynq.c	2010-08-02 00:11:14.000000000 +0200
++++ b/drivers/vlynq/vlynq.c	2010-10-17 15:49:36.215058054 +0200
+@@ -515,9 +515,14 @@
+ 				!__vlynq_try_external(dev))
+ 				return 0;
+ 		} else {
+-			if (!__vlynq_try_external(dev) ||
+-				!__vlynq_try_local(dev)    ||
+-				!__vlynq_try_remote(dev))
++            /* XXX: I don't really know what difference it makes, if the order
++             * of the following calls is changed, but at least in this order
++             * my fritzbox doesn't hang at startup as in
++             * https://dev.openwrt.org/ticket/7324
++             */
++			if (!__vlynq_try_remote(dev) ||
++				!__vlynq_try_local(dev)  ||
++				!__vlynq_try_external(dev))
+ 				return 0;
+ 		}
+ 		break;