diff --git a/target/linux/rdc-2.6/image/Makefile b/target/linux/rdc-2.6/image/Makefile
index dc54bc5b6bd842e378ac4707932012a2b12205ec..6c733087c262622bf23045aa6e651a923e8de8b1 100644
--- a/target/linux/rdc-2.6/image/Makefile
+++ b/target/linux/rdc-2.6/image/Makefile
@@ -11,10 +11,16 @@ define Image/Prepare
 	$(CP) $(LINUX_DIR)/arch/i386/boot/bzImage $(KDIR)/bzImage
 endef
 
+define Image/Build/Airlink
+	touch $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(3)-$(2).img
+	$(STAGING_DIR)/bin/airlink -b 1 -j 64 $(KDIR)/bzImage $(KDIR)/root.$(1) $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(3)-$(2).img
+endef
+
 define Image/Build
-	# FIXME
-	#touch $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).img
-	#$(STAGING_DIR)/bin/airlink -b 0 -j $(KDIR)/bzImage $(KDIR)/root.$(1) $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).img
+	$(CP) $(KDIR)/bzImage $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL).bzImage
+ifneq ($(1),jffs2-128K)
+	$(call Image/Build/Airlink,$(1),ar525w,$(patsubst jffs2-%,jffs2,$(1)))
+endif
 endef
 
 $(eval $(call BuildImage))