diff --git a/arch/armv7/dispatch.cc b/arch/armv7/dispatch.cc
index a22bfc34fb6ca7e6123c080e957a6abe6b2ca68a..02b2f97a7fc8691426f4e8d022797b95d584e8fa 100644
--- a/arch/armv7/dispatch.cc
+++ b/arch/armv7/dispatch.cc
@@ -17,10 +17,10 @@ idle_loop_again:
     goto idle_loop_again;
 }
 namespace arch {
-static char __attribute__((aligned(4096))) idlestack[4096];
+static char __attribute__((aligned(4096))) idlestack[1024];
 static void* idle_stack_pointer;
 TCB Dispatcher::m_idle(idle_loop,
-                       idlestack, idle_stack_pointer, 4096);
+                       idlestack, idle_stack_pointer, 1024);
 os::scheduler::Task Dispatcher::IdleTask(0,0,true,Dispatcher::m_idle);
 
     extern TCB *const OS_tcbs[];