diff --git a/rtl/linux/arm/prt0.as b/rtl/linux/arm/prt0.as
index ea6449aaee..d859785f99 100644
--- a/rtl/linux/arm/prt0.as
+++ b/rtl/linux/arm/prt0.as
@@ -115,6 +115,9 @@ _start:
 _haltproc:
         /* r0 contains exitcode */
 .ifdef __thumb__
+        ldr r0,=operatingsystem_result
+        ldr r0,[r0]
+        mov r7,#248  /* exit group call */
 	swi 0x0
 .else
 	swi 0x900001