diff --git a/target/linux/lantiq/ar9/config-default b/target/linux/lantiq/ar9/config-default
index ce21adf42ef5a4bd523d698cd84dafcf7b732f2a..6a7417901362323a295ed7c2ae44e9ea5ba01f95 100644
--- a/target/linux/lantiq/ar9/config-default
+++ b/target/linux/lantiq/ar9/config-default
@@ -19,6 +19,7 @@ CONFIG_LANTIQ_MACH_FRITZ_AR9=y
 # CONFIG_LANTIQ_MACH_GIGASX76X is not set
 CONFIG_LANTIQ_MACH_NETGEAR=y
 CONFIG_LANTIQ_MACH_WBMR=y
+CONFIG_LANTIQ_MACH_P2601HNFX=y
 # CONFIG_LANTIQ_VRX200 is not set
 CONFIG_MDIO_BOARDINFO=y
 # CONFIG_MLX4_CORE is not set
diff --git a/target/linux/lantiq/ar9/profiles/005-zyxel.mk b/target/linux/lantiq/ar9/profiles/005-zyxel.mk
new file mode 100644
index 0000000000000000000000000000000000000000..8b1384c675ee954e0f512b38523968ffc08921c7
--- /dev/null
+++ b/target/linux/lantiq/ar9/profiles/005-zyxel.mk
@@ -0,0 +1,7 @@
+define Profile/P2601HNFX
+  NAME:=P2601HNFX - ZyXEL P-2601HN-Fx
+  PACKAGES:= kmod-usb-dwc-otg kmod-rt2800-usb wpad-mini \
+	kmod-ltq-dsl-firmware-b-ar9
+endef
+
+$(eval $(call Profile,P2601HNFX))
diff --git a/target/linux/lantiq/danube/config-default b/target/linux/lantiq/danube/config-default
index 417f090fc228e97018d4b690b429a8b57d3fd001..673360fed676ddebd581a1b37289b171ba928df5 100644
--- a/target/linux/lantiq/danube/config-default
+++ b/target/linux/lantiq/danube/config-default
@@ -19,6 +19,7 @@ CONFIG_LANTIQ_MACH_EASY50712=y
 CONFIG_LANTIQ_MACH_GIGASX76X=y
 # CONFIG_LANTIQ_MACH_NETGEAR is not set
 # CONFIG_LANTIQ_MACH_WBMR is not set
+# CONFIG_LANTIQ_MACH_P2601HNFX is not set
 # CONFIG_LANTIQ_VRX200 is not set
 CONFIG_MDIO_BOARDINFO=y
 # CONFIG_MLX4_CORE is not set
diff --git a/target/linux/lantiq/files-3.3/arch/mips/lantiq/xway/mach-p2601hnf1.c b/target/linux/lantiq/files-3.3/arch/mips/lantiq/xway/mach-p2601hnfx.c
similarity index 78%
rename from target/linux/lantiq/files-3.3/arch/mips/lantiq/xway/mach-p2601hnf1.c
rename to target/linux/lantiq/files-3.3/arch/mips/lantiq/xway/mach-p2601hnfx.c
index 98c118135eadcdd12d9dbbf4b31db2f6ced23210..ea7e6e8900ccd529f3052c2839a17d19ebdc4121 100644
--- a/target/linux/lantiq/files-3.3/arch/mips/lantiq/xway/mach-p2601hnf1.c
+++ b/target/linux/lantiq/files-3.3/arch/mips/lantiq/xway/mach-p2601hnfx.c
@@ -29,7 +29,7 @@
 #include "dev-dwc_otg.h"
 
 
-static struct mtd_partition p2601hnf1_partitions[] __initdata =
+static struct mtd_partition p2601hnfx_partitions[] __initdata =
 {
 	{
 		.name	= "uboot",
@@ -53,12 +53,12 @@ static struct mtd_partition p2601hnf1_partitions[] __initdata =
 	},
 };
 
-static struct physmap_flash_data p2601hnf1_flash_data __initdata = {
-	.nr_parts	= ARRAY_SIZE(p2601hnf1_partitions),
-	.parts		= p2601hnf1_partitions,
+static struct physmap_flash_data p2601hnfx_flash_data __initdata = {
+	.nr_parts	= ARRAY_SIZE(p2601hnfx_partitions),
+	.parts		= p2601hnfx_partitions,
 };
 
-static struct gpio_led p2601hnf1_leds_gpio[] __initdata = {
+static struct gpio_led p2601hnfx_leds_gpio[] __initdata = {
 	{ .name = "soc:red:power", .gpio = 29, .active_low = 1, .default_trigger = "default-off" },
 	{ .name = "soc:yellow:phone", .gpio = 64, .active_low = 1, .default_trigger = "default-off" },
 	{ .name = "soc:green:phone", .gpio = 65, .active_low = 1, .default_trigger = "default-off" },
@@ -71,7 +71,7 @@ static struct gpio_led p2601hnf1_leds_gpio[] __initdata = {
 };
 
 static struct gpio_button
-p2601hnf1_gpio_buttons[] /*__initdata*/ = {
+p2601hnfx_gpio_buttons[] /* __initdata */ = {
 	{ .desc = "reset", .type = EV_KEY, .code = BTN_0, .threshold = 3, .gpio = 53, .active_low = 1, },
 	{ .desc = "wlan", .type = EV_KEY, .code = BTN_1, .threshold = 1, .gpio = 54, .active_low = 1, },
 };
@@ -81,17 +81,16 @@ static struct ltq_eth_data ltq_eth_data = {
 };
 
 static void __init
-p2601hnf1_init(void)
+p2601hnfx_init(void)
 {
-
-#define P2601HNF1_USB			9
+#define P2601HNFX_USB			9
 
 	ltq_register_gpio_stp();
-	ltq_add_device_gpio_leds(-1, ARRAY_SIZE(p2601hnf1_leds_gpio), p2601hnf1_leds_gpio);
-	ltq_register_gpio_buttons(p2601hnf1_gpio_buttons, ARRAY_SIZE(p2601hnf1_gpio_buttons));
-	ltq_register_nor(&p2601hnf1_flash_data);
+	ltq_add_device_gpio_leds(-1, ARRAY_SIZE(p2601hnfx_leds_gpio), p2601hnfx_leds_gpio);
+	ltq_register_gpio_buttons(p2601hnfx_gpio_buttons, ARRAY_SIZE(p2601hnfx_gpio_buttons));
+	ltq_register_nor(&p2601hnfx_flash_data);
 	ltq_register_etop(&ltq_eth_data);
-	xway_register_dwc(P2601HNF1_USB);
+	xway_register_dwc(P2601HNFX_USB);
 
 	// enable the ethernet ports on the SoC
 //	ltq_w32((ltq_r32(LTQ_GPORT_P0_CTL) & ~(1 << 17)) | (1 << 18), LTQ_GPORT_P0_CTL);
@@ -99,8 +98,7 @@ p2601hnf1_init(void)
 //	ltq_w32((ltq_r32(LTQ_GPORT_P2_CTL) & ~(1 << 17)) | (1 << 18), LTQ_GPORT_P2_CTL);
 }
 
-MIPS_MACHINE(LANTIQ_MACH_P2601HNF1,
-			"P2601HNF1",
-			"ZyXEL P-2601HN-F1",
-			p2601hnf1_init);
-
+MIPS_MACHINE(LANTIQ_MACH_P2601HNFX,
+			"P2601HNFX",
+			"ZyXEL P-2601HN-Fx",
+			p2601hnfx_init);
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index 280a0d182e7ec239e8c4da27cf01980f0bc11bb2..9d59935b5a9c567a93f409af593fd0018c7adf96 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -157,15 +157,18 @@ endif
 ifeq ($(CONFIG_TARGET_lantiq_ar9),y)
 Image/BuildKernel/Profile/WBMR=$(call Image/BuildKernel/Template,WBMR,$(xway_cmdline))
 Image/BuildKernel/Profile/DGN3500B=$(call Image/BuildKernel/Template,DGN3500B,$(xway_cmdline))
+Image/BuildKernel/Profile/P2601HNFX=$(call Image/BuildKernel/Template,P2601HNFX,$(xway_cmdline))
 Image/BuildKernel/Profile/FRITZ7320=$(call Image/BuildKernelEVA/Template,FRITZ7320,$(xway_cmdline))
 
 Image/Build/Profile/WBMR=$(call Image/Build/$(1),$(1),WBMR)
 Image/Build/Profile/DGN3500B=$(call Image/Build/$(1),$(1),DGN3500B)
+Image/Build/Profile/P2601HNFX=$(call Image/Build/$(1),$(1),P2601HNFX)
 Image/Build/Profile/FRITZ7320=$(call Image/BuildEVA/$(1),$(1),FRITZ7320)
 
 define Image/BuildKernel/Profile/Generic
 	$(call Image/BuildKernel/Template,WBMR,$(xway_cmdline))
 	$(call Image/BuildKernel/Template,DGN3500B,$(xway_cmdline))
+	$(call Image/BuildKernel/Template,P2601HNFX,$(xway_cmdline))
 	$(call Image/BuildKernelEVA/Template,FRITZ7320,$(xway_cmdline))
 	$(call Image/BuildKernel/Template,NONE)
 endef
@@ -173,6 +176,7 @@ endef
 define Image/Build/Profile/Generic
 	$(call Image/Build/$(1),$(1),WBMR)
 	$(call Image/Build/$(1),$(1),DGN3500B)
+	$(call Image/Build/$(1),$(1),P2601HNFX)
 	$(call Image/BuildEVA/$(1),$(1),FRITZ7320)
 	$(call Image/Build/$(1),$(1),NONE)
 	$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).rootfs
diff --git a/target/linux/lantiq/patches-3.3/206-machtypes.patch b/target/linux/lantiq/patches-3.3/206-machtypes.patch
index c964488322bbe6d58a75c106518e583fb2565ce4..7b891e464acf017b0fa9d29a5c488cebad8e82a5 100644
--- a/target/linux/lantiq/patches-3.3/206-machtypes.patch
+++ b/target/linux/lantiq/patches-3.3/206-machtypes.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/lantiq/machtypes.h
 +++ b/arch/mips/lantiq/machtypes.h
-@@ -20,6 +20,36 @@ enum lantiq_mach_type {
+@@ -20,6 +20,39 @@ enum lantiq_mach_type {
  	LANTIQ_MACH_EASY98000,		/* Falcon Eval Board, NOR Flash */
  	LANTIQ_MACH_EASY98000SF,	/* Falcon Eval Board, Serial Flash */
  	LANTIQ_MACH_EASY98000NAND,	/* Falcon Eval Board, NAND Flash */
@@ -34,12 +34,15 @@
 +
 +	/* Buffalo */
 +	LANTIQ_MACH_WBMR,		/* WBMR-HP-G300H */
++
++	/* ZyXEL */
++	LANTIQ_MACH_P2601HNFX,		/* ZyXEL P-2601HN-Fx */
  };
  
  #endif
 --- a/arch/mips/lantiq/xway/Kconfig
 +++ b/arch/mips/lantiq/xway/Kconfig
-@@ -6,6 +6,30 @@ config LANTIQ_MACH_EASY50712
+@@ -6,6 +6,34 @@ config LANTIQ_MACH_EASY50712
  	bool "Easy50712 - Danube"
  	default y
  
@@ -59,6 +62,10 @@
 +	bool "WBMR-HP-G300H"
 +	default y
 +
++config LANTIQ_MACH_P2601HNFX
++	bool "P2601HNFX"
++	default y
++
 +config LANTIQ_MACH_FRITZ_VR9
 +	bool "FRITZ3370"
 +	default y
@@ -72,7 +79,7 @@
  choice
 --- a/arch/mips/lantiq/xway/Makefile
 +++ b/arch/mips/lantiq/xway/Makefile
-@@ -2,3 +2,9 @@ obj-y := sysctrl.o reset.o gpio.o gpio_s
+@@ -2,3 +2,10 @@ obj-y := sysctrl.o reset.o gpio.o gpio_s
  
  obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
  obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
@@ -82,6 +89,7 @@
 +obj-$(CONFIG_LANTIQ_MACH_GIGASX76X) += mach-gigasx76x.o
 +obj-$(CONFIG_LANTIQ_MACH_NETGEAR) += mach-netgear.o
 +obj-$(CONFIG_LANTIQ_MACH_WBMR) += mach-wbmr.o
++obj-$(CONFIG_LANTIQ_MACH_P2601HNFX) += mach-p2601hnfx.o
 --- a/arch/mips/lantiq/falcon/Kconfig
 +++ b/arch/mips/lantiq/falcon/Kconfig
 @@ -6,6 +6,14 @@ config LANTIQ_MACH_EASY98000
diff --git a/target/linux/lantiq/vr9/config-default b/target/linux/lantiq/vr9/config-default
index c2fe001ebf0d58b0cf8482ed07bc922c44f5b153..d6ff259350da1654d8c3cb18e701d22da60cb3aa 100644
--- a/target/linux/lantiq/vr9/config-default
+++ b/target/linux/lantiq/vr9/config-default
@@ -21,6 +21,7 @@ CONFIG_LANTIQ_MACH_FRITZ_VR9=y
 # CONFIG_LANTIQ_MACH_GIGASX76X is not set
 # CONFIG_LANTIQ_MACH_NETGEAR is not set
 # CONFIG_LANTIQ_MACH_WBMR is not set
+# CONFIG_LANTIQ_MACH_P2601HNFX is not set
 CONFIG_LANTIQ_VRX200=y
 CONFIG_M25PXX_USE_FAST_READ=y
 CONFIG_MDIO_BOARDINFO=y