diff --git a/apps/Makefile b/apps/Makefile
index c63fa82..b69d3a9 100644
--- a/apps/Makefile
+++ b/apps/Makefile
@@ -222,3 +222,15 @@ endif
 ifneq ($(MAKECMDGOALS),clean)
 -include $(DEPFILE)
 endif
+
+$(OBJDIR)/tagtree.o: tagtree.c
+	$(call PRINTS,CC $<)$(CC) $(CFLAGS) -mthumb -c $< -o $@
+
+$(OBJDIR)/tree.o: tree.c
+	$(call PRINTS,CC $<)$(CC) $(CFLAGS) -mthumb -c $< -o $@
+
+$(OBJDIR)/settings_list.o: settings_list.c
+	$(call PRINTS,CC $<)$(CC) $(CFLAGS) -mthumb -c $< -o $@
+
+$(OBJDIR)/settings.o: settings.c
+	$(call PRINTS,CC $<)$(CC) $(CFLAGS) -mthumb -c $< -o $@
diff --git a/firmware/Makefile b/firmware/Makefile
index d09676f..c01d23d 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -40,11 +40,14 @@ clean:
 
 # Special targets
 $(OBJDIR)/thread.o: thread.c export/thread.h
-	$(call PRINTS,CC thread.c)$(CC) -c -O -fomit-frame-pointer $(CFLAGS) $< -o $@
+	$(call PRINTS,CC thread.c)$(CC) -c -O -fomit-frame-pointer $(CFLAGS) -mno-thumb $< -o $@
 
 $(BUILDDIR)/sysfont.h: ../fonts/rockbox_default.bdf
 	$(call PRINTS,Create sysfont.h)$(TOOLSDIR)/convbdf -h -o $@ $<
 
+$(OBJDIR)/drivers/lcd-ipod.o: drivers/lcd-ipod.c
+	$(call PRINTS,CC $<)$(CC) $(CFLAGS) -mthumb -c $< -o $@
+
 $(OBJDIR)/sysfont.o: ../fonts/rockbox_default.bdf
 	$(call PRINTS,CONVBDF)$(TOOLSDIR)/convbdf -c -o $(OBJDIR)/sysfont.c $<
 	$(call PRINTS,CC sysfont.c)$(CC) $(CFLAGS) -c $(OBJDIR)/sysfont.c -o $@
diff --git a/tools/configure b/tools/configure
index ee5dbaa..c5b6d18 100755
--- a/tools/configure
+++ b/tools/configure
@@ -227,7 +227,7 @@ coldfirecc () {
 
 arm7tdmicc () {
  prefixtools arm-elf-
- GCCOPTS="$CCOPTS -mcpu=arm7tdmi"
+ GCCOPTS="$CCOPTS -mcpu=arm7tdmi -mthumb-interwork"
  if test "X$1" != "Xshort"; then
    GCCOPTS="$GCCOPTS -mlong-calls"
  fi
diff --git a/tools/rockboxdev.sh b/tools/rockboxdev.sh
index 85dcf53..367f607 100755
--- a/tools/rockboxdev.sh
+++ b/tools/rockboxdev.sh
@@ -146,6 +146,8 @@ case $1 in
     ;;
   [Aa])
     target="arm-elf"
+    gccurl="http://www.rockbox.org/twiki/pub/Main/CrossCompiler"
+    gccpatch="thumb-interwork-4.0.3.diff"
     ;;
   *)
     echo "unsupported"
