diff --git a/examples/device/cdc_msc_hid/src/main.c b/examples/device/cdc_msc_hid/src/main.c
index fc2f2aad..8087adbb 100644
--- a/examples/device/cdc_msc_hid/src/main.c
+++ b/examples/device/cdc_msc_hid/src/main.c
@@ -49,8 +49,8 @@ static uint32_t blink_interval_ms = BLINK_NOT_MOUNTED;
void led_blinking_task(void);
-extern void cdc_task(void);
-extern void hid_task(void);
+void cdc_task(void);
+void hid_task(void);
/*------------- MAIN -------------*/
int main(void)
diff --git a/examples/device/cdc_msc_hid_freertos/Makefile b/examples/device/cdc_msc_hid_freertos/Makefile
index 825ff9f7..3a39f460 100644
--- a/examples/device/cdc_msc_hid_freertos/Makefile
+++ b/examples/device/cdc_msc_hid_freertos/Makefile
@@ -20,7 +20,10 @@ SRC_C += \
lib/FreeRTOS/Source/queue.c \
lib/FreeRTOS/Source/tasks.c \
lib/FreeRTOS/Source/timers.c \
- lib/FreeRTOS/Source/portable/GCC/$(FREERTOS_PORT)/port.c \
lib/FreeRTOS/Source/portable/MemMang/heap_4.c \
+ lib/FreeRTOS/Source/portable/GCC/$(FREERTOS_PORT)/port.c \
+
+# FreeRTOS (lto + Os) linker issue
+LDFLAGS += -Wl,--undefined=vTaskSwitchContext
include ../../rules.mk
diff --git a/examples/device/cdc_msc_hid_freertos/ses/nrf5x/nrf5x.emProject b/examples/device/cdc_msc_hid_freertos/ses/nrf5x/nrf5x.emProject
index ee387958..f01b26d2 100644
--- a/examples/device/cdc_msc_hid_freertos/ses/nrf5x/nrf5x.emProject
+++ b/examples/device/cdc_msc_hid_freertos/ses/nrf5x/nrf5x.emProject
@@ -141,7 +141,6 @@
-