diff --git a/src/uifc/uifc32.c b/src/uifc/uifc32.c
index 38733ba26ad7fda21a3f61a17b82eacff641d5f5..7ba768f96a487a611b3e1d22bdace6a6dacc6aa0 100644
--- a/src/uifc/uifc32.c
+++ b/src/uifc/uifc32.c
@@ -43,7 +43,12 @@
 	#endif
 	#include "ciowrap.h"
     #define mswait(x) delay(x)
-    #define putch(x)	_putch(x,TRUE)
+	#if defined(putch) && defined(NO_ECHOCHAR)
+		#undef putch
+	#endif
+	#if !defined(putch)
+    	#define putch(x)	_putch(x,TRUE)
+	#endif
     #define clreol()	clrtoeol()
 #elif defined(_WIN32)
 	#include <share.h>