diff --git a/Config.in b/Config.in
index 78df56383dfbcbd5fbba03744901c19c3bfb6788..acb27b47ea5b1acbdb5169e3f6c51bd0856cc136 100644
--- a/Config.in
+++ b/Config.in
@@ -93,7 +93,7 @@ menu "Target Images"
 
 comment "Image Options"
 
-source "target/image/*/Config.in"
+source "target/linux/*/image/Config.in"
 
 	config TARGET_ROOTFS_FSPART
 		int "Filesystem part size (in MB)"
diff --git a/target/Makefile b/target/Makefile
index c00eea0d66fa838ff0eabd4edde47b3594aaa9f5..d5e6bea01c6a1a470bb953d1b8f8f18179a79531 100644
--- a/target/Makefile
+++ b/target/Makefile
@@ -19,6 +19,9 @@ linux-compile: utils-install
 linux-install: $(BIN_DIR)
 image_install: linux-install
 
+IMAGE_DIR:=linux/$(BOARD)-$(KERNEL)/image
+
+
 download: $(patsubst %,%-download,$(TARGETS-y))
 prepare: linux-prepare
 compile: linux-compile image_compile
@@ -27,17 +30,17 @@ clean: $(patsubst %,%-clean,$(TARGETS-y)) image_clean
 
 prereq: FORCE
 	$(MAKE) -C linux/$(BOARD)-$(KERNEL) prereq
-	$(MAKE) -C image/$(BOARD) prereq
+	$(MAKE) -C $(IMAGE_DIR) prereq
 
 image_clean: FORCE
-	$(MAKE) -C image/$(BOARD) clean
+	$(MAKE) -C $(IMAGE_DIR) clean
 	rm -f $(BIN_DIR)/openwrt-*
 	
 image_compile: FORCE
-	$(MAKE) -C image/$(BOARD) compile
+	$(MAKE) -C $(IMAGE_DIR) compile
 
 image_install: image_compile
-	$(MAKE) -C image/$(BOARD) install
+	$(MAKE) -C $(IMAGE_DIR) install
 
 %-clean: FORCE
 	$(MAKE) -C $(patsubst %-clean,%,$@) clean
diff --git a/target/image/ar7/Makefile b/target/linux/ar7-2.4/image/Makefile
similarity index 100%
rename from target/image/ar7/Makefile
rename to target/linux/ar7-2.4/image/Makefile
diff --git a/target/image/ar7/sercomm/adam2.bin b/target/linux/ar7-2.4/image/sercomm/adam2.bin
similarity index 100%
rename from target/image/ar7/sercomm/adam2.bin
rename to target/linux/ar7-2.4/image/sercomm/adam2.bin
diff --git a/target/image/ar7/sercomm/dg834 b/target/linux/ar7-2.4/image/sercomm/dg834
similarity index 100%
rename from target/image/ar7/sercomm/dg834
rename to target/linux/ar7-2.4/image/sercomm/dg834
diff --git a/target/image/ar7/sercomm/jdr454wb b/target/linux/ar7-2.4/image/sercomm/jdr454wb
similarity index 100%
rename from target/image/ar7/sercomm/jdr454wb
rename to target/linux/ar7-2.4/image/sercomm/jdr454wb
diff --git a/target/image/ar7/src/LzmaDecode.c b/target/linux/ar7-2.4/image/src/LzmaDecode.c
similarity index 100%
rename from target/image/ar7/src/LzmaDecode.c
rename to target/linux/ar7-2.4/image/src/LzmaDecode.c
diff --git a/target/image/ar7/src/LzmaDecode.h b/target/linux/ar7-2.4/image/src/LzmaDecode.h
similarity index 100%
rename from target/image/ar7/src/LzmaDecode.h
rename to target/linux/ar7-2.4/image/src/LzmaDecode.h
diff --git a/target/image/ar7/src/gzip.h b/target/linux/ar7-2.4/image/src/gzip.h
similarity index 100%
rename from target/image/ar7/src/gzip.h
rename to target/linux/ar7-2.4/image/src/gzip.h
diff --git a/target/image/ar7/src/ld.script.in b/target/linux/ar7-2.4/image/src/ld.script.in
similarity index 100%
rename from target/image/ar7/src/ld.script.in
rename to target/linux/ar7-2.4/image/src/ld.script.in
diff --git a/target/image/ar7/src/loader.c b/target/linux/ar7-2.4/image/src/loader.c
similarity index 100%
rename from target/image/ar7/src/loader.c
rename to target/linux/ar7-2.4/image/src/loader.c
diff --git a/target/image/ar7/src/srec2bin.c b/target/linux/ar7-2.4/image/src/srec2bin.c
similarity index 100%
rename from target/image/ar7/src/srec2bin.c
rename to target/linux/ar7-2.4/image/src/srec2bin.c
diff --git a/target/image/ar7/src/zimage.script.in b/target/linux/ar7-2.4/image/src/zimage.script.in
similarity index 100%
rename from target/image/ar7/src/zimage.script.in
rename to target/linux/ar7-2.4/image/src/zimage.script.in
diff --git a/target/image/aruba/Makefile b/target/linux/aruba-2.6/image/Makefile
similarity index 87%
rename from target/image/aruba/Makefile
rename to target/linux/aruba-2.6/image/Makefile
index 09aa8eabd4ac24eb77d72ac570709328681496ff..37dd6fccb04ae63c29d014aa431fd858386c2dfb 100644
--- a/target/image/aruba/Makefile
+++ b/target/linux/aruba-2.6/image/Makefile
@@ -18,12 +18,12 @@ LOADER_MAKEOPTS= \
 		RAMSIZE=$(RAMSIZE)
 
 define Build/Clean
-	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) clean
+	$(MAKE) -C ../../generic-2.6/image/lzma-loader $(LOADER_MAKEOPTS) clean
 endef
 
 define Image/Prepare
 	cat $(KDIR)/vmlinux | $(STAGING_DIR)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux.lzma
-	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) clean compile
+	$(MAKE) -C ../../generic-2.6/image/lzma-loader $(LOADER_MAKEOPTS) clean compile
 endef
 
 define Image/BuildKernel
diff --git a/target/image/aruba/addVersion b/target/linux/aruba-2.6/image/addVersion
similarity index 100%
rename from target/image/aruba/addVersion
rename to target/linux/aruba-2.6/image/addVersion
diff --git a/target/image/aruba/version b/target/linux/aruba-2.6/image/version
similarity index 100%
rename from target/image/aruba/version
rename to target/linux/aruba-2.6/image/version
diff --git a/target/image/au1000/Makefile b/target/linux/au1000-2.6/image/Makefile
similarity index 89%
rename from target/image/au1000/Makefile
rename to target/linux/au1000-2.6/image/Makefile
index fa3f06e31803c2a05ac535c890c8e0685369f629..9c7bb06d3a83ea84aa130baf86d380e27f0c246d 100644
--- a/target/image/au1000/Makefile
+++ b/target/linux/au1000-2.6/image/Makefile
@@ -21,7 +21,7 @@ LOADER_MAKEOPTS= \
 		RAMSIZE=$(RAMSIZE)
 
 define Build/Clean
-	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) clean
+	$(MAKE) -C ../../generic-2.6/image/lzma-loader $(LOADER_MAKEOPTS) clean
 endef
 
 DROP_SECTIONS := .reginfo .mdebug .comment .note .pdr .options .MIPS.options
@@ -31,13 +31,13 @@ define Image/Prepare
 	cat $(KDIR)/vmlinux | $(STAGING_DIR)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux.lzma
 	
 	# Build RAM image
-	$(MAKE) -C ../generic/lzma-loader \
+	$(MAKE) -C ../../generic-2.6/image/lzma-loader \
 		$(LOADER_MAKEOPTS) \
 		clean compile
 	$(OBJCOPY_KERNEL) $(KDIR)/loader.elf $(KDIR)/kernel.ram.srec
 	
 	# Build Flash image
-	$(MAKE) -C ../generic/lzma-loader \
+	$(MAKE) -C ../../generic-2.6/image/lzma-loader \
 		$(LOADER_MAKEOPTS) \
 		IMAGE_COPY=1 \
 		LOADER_ENTRY=$(FLASH_KERNEL) \
diff --git a/target/linux/brcm-2.4/image b/target/linux/brcm-2.4/image
new file mode 120000
index 0000000000000000000000000000000000000000..9813e361e3ddbcf830316f04c2c56c3a19e70fcf
--- /dev/null
+++ b/target/linux/brcm-2.4/image
@@ -0,0 +1 @@
+../brcm-2.6/image/
\ No newline at end of file
diff --git a/target/image/brcm/Makefile b/target/linux/brcm-2.6/image/Makefile
similarity index 100%
rename from target/image/brcm/Makefile
rename to target/linux/brcm-2.6/image/Makefile
diff --git a/target/image/brcm/lzma-loader/Makefile b/target/linux/brcm-2.6/image/lzma-loader/Makefile
similarity index 100%
rename from target/image/brcm/lzma-loader/Makefile
rename to target/linux/brcm-2.6/image/lzma-loader/Makefile
diff --git a/target/image/brcm/lzma-loader/src/LzmaDecode.c b/target/linux/brcm-2.6/image/lzma-loader/src/LzmaDecode.c
similarity index 100%
rename from target/image/brcm/lzma-loader/src/LzmaDecode.c
rename to target/linux/brcm-2.6/image/lzma-loader/src/LzmaDecode.c
diff --git a/target/image/brcm/lzma-loader/src/LzmaDecode.h b/target/linux/brcm-2.6/image/lzma-loader/src/LzmaDecode.h
similarity index 100%
rename from target/image/brcm/lzma-loader/src/LzmaDecode.h
rename to target/linux/brcm-2.6/image/lzma-loader/src/LzmaDecode.h
diff --git a/target/image/brcm/lzma-loader/src/Makefile b/target/linux/brcm-2.6/image/lzma-loader/src/Makefile
similarity index 100%
rename from target/image/brcm/lzma-loader/src/Makefile
rename to target/linux/brcm-2.6/image/lzma-loader/src/Makefile
diff --git a/target/image/brcm/lzma-loader/src/README b/target/linux/brcm-2.6/image/lzma-loader/src/README
similarity index 100%
rename from target/image/brcm/lzma-loader/src/README
rename to target/linux/brcm-2.6/image/lzma-loader/src/README
diff --git a/target/image/brcm/lzma-loader/src/decompress.c b/target/linux/brcm-2.6/image/lzma-loader/src/decompress.c
similarity index 100%
rename from target/image/brcm/lzma-loader/src/decompress.c
rename to target/linux/brcm-2.6/image/lzma-loader/src/decompress.c
diff --git a/target/image/brcm/lzma-loader/src/decompress.lds.in b/target/linux/brcm-2.6/image/lzma-loader/src/decompress.lds.in
similarity index 100%
rename from target/image/brcm/lzma-loader/src/decompress.lds.in
rename to target/linux/brcm-2.6/image/lzma-loader/src/decompress.lds.in
diff --git a/target/image/brcm/lzma-loader/src/head.S b/target/linux/brcm-2.6/image/lzma-loader/src/head.S
similarity index 100%
rename from target/image/brcm/lzma-loader/src/head.S
rename to target/linux/brcm-2.6/image/lzma-loader/src/head.S
diff --git a/target/image/brcm/lzma-loader/src/loader.lds.in b/target/linux/brcm-2.6/image/lzma-loader/src/loader.lds.in
similarity index 100%
rename from target/image/brcm/lzma-loader/src/loader.lds.in
rename to target/linux/brcm-2.6/image/lzma-loader/src/loader.lds.in
diff --git a/target/image/brcm63xx/Makefile b/target/linux/brcm63xx-2.6/image/Makefile
similarity index 83%
rename from target/image/brcm63xx/Makefile
rename to target/linux/brcm63xx-2.6/image/Makefile
index 6aa72c2920c2eb171f6fc3bb3f96b9e102380f02..27c7b49c39a4676fa5a2337a255546cb95a8b79d 100644
--- a/target/image/brcm63xx/Makefile
+++ b/target/linux/brcm63xx-2.6/image/Makefile
@@ -18,12 +18,12 @@ LOADER_MAKEOPTS= \
 		RAMSIZE=$(RAMSIZE)
 
 define Build/Clean
-	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) clean
+	$(MAKE) -C ../../generic-2.6/image/lzma-loader $(LOADER_MAKEOPTS) clean
 endef
 
 define Image/Prepare
 	cat $(KDIR)/vmlinux | $(STAGING_DIR)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux.lzma
-	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) compile
+	$(MAKE) -C ../../generic-2.6/image/lzma-loader $(LOADER_MAKEOPTS) compile
 endef
 
 define Image/Build
diff --git a/target/linux/generic-2.4/image b/target/linux/generic-2.4/image
new file mode 120000
index 0000000000000000000000000000000000000000..a96fdd0abb63d137f60066fd1f6ee900259ab3a9
--- /dev/null
+++ b/target/linux/generic-2.4/image
@@ -0,0 +1 @@
+../generic-2.6/image/
\ No newline at end of file
diff --git a/target/image/generic/Makefile b/target/linux/generic-2.6/image/Makefile
similarity index 100%
rename from target/image/generic/Makefile
rename to target/linux/generic-2.6/image/Makefile
diff --git a/target/image/generic/lzma-loader/Makefile b/target/linux/generic-2.6/image/lzma-loader/Makefile
similarity index 100%
rename from target/image/generic/lzma-loader/Makefile
rename to target/linux/generic-2.6/image/lzma-loader/Makefile
diff --git a/target/image/generic/lzma-loader/src/LzmaDecode.c b/target/linux/generic-2.6/image/lzma-loader/src/LzmaDecode.c
similarity index 100%
rename from target/image/generic/lzma-loader/src/LzmaDecode.c
rename to target/linux/generic-2.6/image/lzma-loader/src/LzmaDecode.c
diff --git a/target/image/generic/lzma-loader/src/LzmaDecode.h b/target/linux/generic-2.6/image/lzma-loader/src/LzmaDecode.h
similarity index 100%
rename from target/image/generic/lzma-loader/src/LzmaDecode.h
rename to target/linux/generic-2.6/image/lzma-loader/src/LzmaDecode.h
diff --git a/target/image/generic/lzma-loader/src/Makefile b/target/linux/generic-2.6/image/lzma-loader/src/Makefile
similarity index 100%
rename from target/image/generic/lzma-loader/src/Makefile
rename to target/linux/generic-2.6/image/lzma-loader/src/Makefile
diff --git a/target/image/generic/lzma-loader/src/decompress.c b/target/linux/generic-2.6/image/lzma-loader/src/decompress.c
similarity index 100%
rename from target/image/generic/lzma-loader/src/decompress.c
rename to target/linux/generic-2.6/image/lzma-loader/src/decompress.c
diff --git a/target/image/generic/lzma-loader/src/lzma-copy.lds.in b/target/linux/generic-2.6/image/lzma-loader/src/lzma-copy.lds.in
similarity index 100%
rename from target/image/generic/lzma-loader/src/lzma-copy.lds.in
rename to target/linux/generic-2.6/image/lzma-loader/src/lzma-copy.lds.in
diff --git a/target/image/generic/lzma-loader/src/lzma.lds.in b/target/linux/generic-2.6/image/lzma-loader/src/lzma.lds.in
similarity index 100%
rename from target/image/generic/lzma-loader/src/lzma.lds.in
rename to target/linux/generic-2.6/image/lzma-loader/src/lzma.lds.in
diff --git a/target/image/generic/lzma-loader/src/print.c b/target/linux/generic-2.6/image/lzma-loader/src/print.c
similarity index 100%
rename from target/image/generic/lzma-loader/src/print.c
rename to target/linux/generic-2.6/image/lzma-loader/src/print.c
diff --git a/target/image/generic/lzma-loader/src/print.h b/target/linux/generic-2.6/image/lzma-loader/src/print.h
similarity index 100%
rename from target/image/generic/lzma-loader/src/print.h
rename to target/linux/generic-2.6/image/lzma-loader/src/print.h
diff --git a/target/image/generic/lzma-loader/src/printf.c b/target/linux/generic-2.6/image/lzma-loader/src/printf.c
similarity index 100%
rename from target/image/generic/lzma-loader/src/printf.c
rename to target/linux/generic-2.6/image/lzma-loader/src/printf.c
diff --git a/target/image/generic/lzma-loader/src/printf.h b/target/linux/generic-2.6/image/lzma-loader/src/printf.h
similarity index 100%
rename from target/image/generic/lzma-loader/src/printf.h
rename to target/linux/generic-2.6/image/lzma-loader/src/printf.h
diff --git a/target/image/generic/lzma-loader/src/start.S b/target/linux/generic-2.6/image/lzma-loader/src/start.S
similarity index 100%
rename from target/image/generic/lzma-loader/src/start.S
rename to target/linux/generic-2.6/image/lzma-loader/src/start.S
diff --git a/target/image/generic/lzma-loader/src/uart16550.c b/target/linux/generic-2.6/image/lzma-loader/src/uart16550.c
similarity index 100%
rename from target/image/generic/lzma-loader/src/uart16550.c
rename to target/linux/generic-2.6/image/lzma-loader/src/uart16550.c
diff --git a/target/image/generic/lzma-loader/src/uart16550.h b/target/linux/generic-2.6/image/lzma-loader/src/uart16550.h
similarity index 100%
rename from target/image/generic/lzma-loader/src/uart16550.h
rename to target/linux/generic-2.6/image/lzma-loader/src/uart16550.h
diff --git a/target/image/ixp4xx/Makefile b/target/linux/ixp4xx-2.6/image/Makefile
similarity index 100%
rename from target/image/ixp4xx/Makefile
rename to target/linux/ixp4xx-2.6/image/Makefile
diff --git a/target/image/magicbox/Makefile b/target/linux/magicbox-2.6/image/Makefile
similarity index 100%
rename from target/image/magicbox/Makefile
rename to target/linux/magicbox-2.6/image/Makefile
diff --git a/target/image/rb532/Makefile b/target/linux/rb532-2.6/image/Makefile
similarity index 96%
rename from target/image/rb532/Makefile
rename to target/linux/rb532-2.6/image/Makefile
index 7213cf8b8aea2e7dfdffa51d6e306752dd5cf457..6bf3f9d05604ec769a1728e8761d112c5fe792eb 100644
--- a/target/image/rb532/Makefile
+++ b/target/linux/rb532-2.6/image/Makefile
@@ -21,7 +21,7 @@ LOADER_MAKEOPTS= \
 		IMAGE_COPY=$(IMAGE_COPY)
 
 define Build/Clean
-	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) clean
+	$(MAKE) -C ../../generic-2.6/image/lzma-loader $(LOADER_MAKEOPTS) clean
 endef
 
 CMDLINE_SIZE=512
diff --git a/target/image/rdc/Makefile b/target/linux/rdc-2.6/image/Makefile
similarity index 100%
rename from target/image/rdc/Makefile
rename to target/linux/rdc-2.6/image/Makefile
diff --git a/target/image/uml/Makefile b/target/linux/uml-2.6/image/Makefile
similarity index 100%
rename from target/image/uml/Makefile
rename to target/linux/uml-2.6/image/Makefile
diff --git a/target/image/x86/Config.in b/target/linux/x86-2.6/image/Config.in
similarity index 100%
rename from target/image/x86/Config.in
rename to target/linux/x86-2.6/image/Config.in
diff --git a/target/image/x86/Makefile b/target/linux/x86-2.6/image/Makefile
similarity index 100%
rename from target/image/x86/Makefile
rename to target/linux/x86-2.6/image/Makefile
diff --git a/target/image/x86/gen_image.sh b/target/linux/x86-2.6/image/gen_image.sh
similarity index 100%
rename from target/image/x86/gen_image.sh
rename to target/linux/x86-2.6/image/gen_image.sh
diff --git a/target/image/x86/grub/Makefile b/target/linux/x86-2.6/image/grub/Makefile
similarity index 100%
rename from target/image/x86/grub/Makefile
rename to target/linux/x86-2.6/image/grub/Makefile
diff --git a/target/image/x86/grub/menu.lst b/target/linux/x86-2.6/image/grub/menu.lst
similarity index 100%
rename from target/image/x86/grub/menu.lst
rename to target/linux/x86-2.6/image/grub/menu.lst