diff --git a/Makefile b/Makefile
index 023ea23a38bdb3d187eaf2950999b989820bfa92..351a8f04d22dfa25a364dfa66c262882526a63da 100644
--- a/Makefile
+++ b/Makefile
@@ -556,6 +556,13 @@ SYSTEM_MAP = \
 $(obj)System.map:	$(obj)u-boot
 		@$(call SYSTEM_MAP,$<) > $(obj)System.map
 
+checkthumb:
+	@if test $(call cc-version) -lt 0404; then \
+		echo -n '*** Your GCC does not produce working '; \
+		echo 'binaries in THUMB mode.'; \
+		echo '*** Your board is configured for THUMB mode.'; \
+		false; \
+	fi
 #
 # Auto-generate the autoconf.mk file (which is included by all makefiles)
 #
diff --git a/arch/arm/config.mk b/arch/arm/config.mk
index 4cc99e7613747650227f0b54b952b6405b5906ca..3f4453a23406ff277ce57ed1803971e60b71af9f 100644
--- a/arch/arm/config.mk
+++ b/arch/arm/config.mk
@@ -44,6 +44,11 @@ PF_CPPFLAGS_ARM := $(call cc-option,-marm,) \
 		$(call cc-option,-mno-thumb-interwork,)
 endif
 
+# Only test once
+ifneq ($(CONFIG_SPL_BUILD),y)
+ALL-$(CONFIG_SYS_THUMB_BUILD)	+= checkthumb
+endif
+
 # Try if EABI is supported, else fall back to old API,
 # i. e. for example:
 # - with ELDK 4.2 (EABI supported), use: