diff --git a/FreeRTOS/Source/portable/esp8266/port.c b/FreeRTOS/Source/portable/esp8266/port.c
index 54bca65..1167aaf 100644
--- a/FreeRTOS/Source/portable/esp8266/port.c
+++ b/FreeRTOS/Source/portable/esp8266/port.c
@@ -143,7 +143,7 @@ void IRAM PendSV(enum SVC_ReqType req)
 	else if(req == SVC_MACLayer)
 		pending_maclayer_sv= 1;
 
-	xthal_set_intset(BIT(INUM_SOFT));
+	WSR(BIT(INUM_SOFT), interrupt);
 	vPortExitCritical();
 }
 
diff --git a/ld/program.ld b/ld/program.ld
index 88fa0f4..d040a2f 100644
--- a/ld/program.ld
+++ b/ld/program.ld
@@ -131,9 +131,6 @@ SECTIONS
     *libc.a:*findfp.o(.literal .text .literal.* .text.*)
     *libc.a:*fputwc.o(.literal .text .literal.* .text.*)
 
-    /* xthal_set_intset() called from PendSV in NMI context */
-    *libhal.a:*set_intset.o(.literal .text .literal.* .text.*)
-
     *(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
     *(.fini.literal)
     *(.fini)