ifeq ($(KERNEL),2.4)
 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched
        $(SED) "s,\-mcpu=,\-mtune=,g;" $(LINUX_DIR)/arch/mips/Makefile
-       $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(TARGET_CC)" ARCH=$(LINUX_KARCH) oldconfig include/linux/compile.h include/linux/version.h
+       $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) oldconfig include/linux/compile.h include/linux/version.h
        touch $@
 
 $(LINUX_DIR)/.depend_done: $(LINUX_DIR)/.configured
 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.depend_done
 else
 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched
-       $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(TARGET_CC)" ARCH=$(LINUX_KARCH) oldconfig prepare scripts
+       $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) oldconfig prepare scripts
        touch $@
 endif
 
 endif
 
 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.linux-compile pkg-install ramdisk-config
-       $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(TARGET_CC)" ARCH=$(LINUX_KARCH)
+       $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) 
 
 $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
        $(KERNEL_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@
 
 $(LINUX_DIR)/.modules_done:
        rm -rf $(KERNEL_BUILD_DIR)/modules
-       $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(TARGET_CC)" ARCH=$(LINUX_KARCH) modules
-       $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(TARGET_CC)" ARCH=$(LINUX_KARCH) DEPMOD=true INSTALL_MOD_PATH=$(KERNEL_BUILD_DIR)/modules modules_install
+       $(MAKE) -C "$(LINUX_DIR)" CC="$(KERNEL_CC)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) modules
+       $(MAKE) -C "$(LINUX_DIR)" CC="$(KERNEL_CC)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) DEPMOD=true INSTALL_MOD_PATH=$(KERNEL_BUILD_DIR)/modules modules_install
        touch $(LINUX_DIR)/.modules_done
 
 modules: $(LINUX_DIR)/.modules_done
 
 )
 
 ifneq (,$(findstring uml,$(BOARD)))
-LINUX_KARCH="um"
-KERNEL_CROSS=
+  LINUX_KARCH:=um
+  KERNEL_CC:=$(HOSTCC)
+  KERNEL_CROSS:=
+else
+  KERNEL_CC:=$(TARGET_CC)
+  KERNEL_CROSS:=$(TARGET_CROSS)
 endif
 
 KERNEL_BUILD_DIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
 
 
 REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc
 GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
-KERNEL_CROSS:=$(OPTIMIZE_FOR_CPU)-linux-uclibc-
 TARGET_CROSS:=$(OPTIMIZE_FOR_CPU)-linux-uclibc-
 IMAGE:=$(BUILD_DIR)/root_fs_$(ARCH)