diff --git a/Sming/Wiring/FakePgmSpace.cpp b/Sming/Wiring/FakePgmSpace.cpp
index 847c227528..156a31df6c 100644
--- a/Sming/Wiring/FakePgmSpace.cpp
+++ b/Sming/Wiring/FakePgmSpace.cpp
@@ -38,10 +38,3 @@ int memcmp_aligned(const void* ptr1, const void* ptr2, unsigned len)
 	auto tail2 = pgm_read_dword(reinterpret_cast<const uint8_t*>(ptr2) + len_aligned);
 	return memcmp(&tail1, &tail2, len - len_aligned);
 }
-
-#ifdef ARCH_HOST
-char* smg_return_local(char* buf)
-{
-	return buf;
-}
-#endif
diff --git a/Sming/Wiring/FakePgmSpace.h b/Sming/Wiring/FakePgmSpace.h
index db5fab597a..3c34e8f43a 100644
--- a/Sming/Wiring/FakePgmSpace.h
+++ b/Sming/Wiring/FakePgmSpace.h
@@ -76,12 +76,8 @@ extern "C" {
 	}))
 
 #ifdef ARCH_HOST
-// Internal function to prevent 'dangling pointer' compiler warning
-extern char* smg_return_local(char* buf);
+#define _F(str) (str)
 #else
-#define smg_return_local(buf) (buf)
-#endif
-
 /**
  * @brief Declare and use a flash string inline.
  * @param str
@@ -91,9 +87,11 @@ extern char* smg_return_local(char* buf);
 	(__extension__({                                                                                                   \
 		DEFINE_PSTR_LOCAL(__pstr__, str);                                                                              \
 		LOAD_PSTR(buf, __pstr__);                                                                                      \
-		smg_return_local(buf);                                                                                         \
+		buf;                                                                                                           \
 	}))
 
+#endif
+
 /**
  * @brief copy memory aligned to word boundaries
  * @param dst