diff --git a/core/include/kernel_internal.h b/core/include/kernel_internal.h
index fc3c18e7ec1f875445cedaecb5d5382e1557cc43..45cc89c7ad7db0071d162745e4475f5cf554c5df 100644
--- a/core/include/kernel_internal.h
+++ b/core/include/kernel_internal.h
@@ -29,7 +29,7 @@ void board_init(void);
  *
  * @return stack pointer
  */
-char *thread_stack_init(void  *task_func, void *stack_start, int stack_size);
+char *thread_stack_init(void  (*task_func)(void), void *stack_start, int stack_size);
 
 /**
  * @brief  Removes thread from scheduler and set status to STATUS_STOPPED
diff --git a/cpu/arm_common/arm_cpu.c b/cpu/arm_common/arm_cpu.c
index 823fe3b5aaba0e6f603e465239d92f89e4a53ce9..83acd681f90a5921ced6603badb3c6169cc2900b 100644
--- a/cpu/arm_common/arm_cpu.c
+++ b/cpu/arm_common/arm_cpu.c
@@ -38,7 +38,7 @@ void thread_yield(void)
  * Processor specific routine - here for ARM7
  * sizeof(void*) = sizeof(int)
  *--------------------------------------------------------------------------*/
-char *thread_stack_init(void *task_func, void *stack_start, int stack_size)
+char *thread_stack_init(void (*task_func)(void), void *stack_start, int stack_size)
 {
     unsigned int *stk;
     int i;
diff --git a/cpu/msp430-common/cpu.c b/cpu/msp430-common/cpu.c
index c49e7711663686653547deac28c5f6a4a7d247b9..291ef83da165f7cb3f59a020fccf29ccf68bb2dd 100644
--- a/cpu/msp430-common/cpu.c
+++ b/cpu/msp430-common/cpu.c
@@ -46,7 +46,7 @@ void cpu_switch_context_exit(void)
 //----------------------------------------------------------------------------
 // Processor specific routine - here for MSP
 //----------------------------------------------------------------------------
-char *thread_stack_init(void *task_func, void *stack_start, int stack_size)
+char *thread_stack_init(void (*task_func)(void), void *stack_start, int stack_size)
 {
     unsigned short *stk;
     stk = (unsigned short *)(stack_start + stack_size);
diff --git a/cpu/native/native_cpu.c b/cpu/native/native_cpu.c
index 629db695252a7ae47c890f1fff1faac5248d67ad..f9a4ce35c8a41292bf88b6e7aa4dfbe5076146be 100644
--- a/cpu/native/native_cpu.c
+++ b/cpu/native/native_cpu.c
@@ -45,7 +45,7 @@ void thread_print_stack(void)
     return;
 }
 
-char *thread_stack_init(void *task_func, void *stack_start, int stacksize)
+char *thread_stack_init(void (*task_func)(void), void *stack_start, int stacksize)
 {
     unsigned int *stk;
     ucontext_t *p;