diff --git a/src/sbbs3/uedit/CMakeLists.txt b/src/sbbs3/uedit/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cb7b908f2d5554e2eee1976c2cb32a56dcc137a5
--- /dev/null
+++ b/src/sbbs3/uedit/CMakeLists.txt
@@ -0,0 +1,30 @@
+project (UEdit C)
+
+cmake_minimum_required(VERSION 2.8.11)
+
+INCLUDE (../../build/SynchronetMacros.cmake)
+INCLUDE (FindCurses)
+
+add_executable(uedit
+	../ars.c
+	../dat_rec.c
+	../date_str.c
+	../getmail.c
+	../getstats.c
+	../load_cfg.c
+	../nopen.c
+	../sbbs_ini.c
+	../scfglib1.c
+	../scfglib2.c
+	../str_util.c
+	../userdat.c
+	uedit.c
+)
+double_require_lib(uedit xpdev)
+double_require_lib_dir(uedit ciolib conio)
+double_require_lib(uedit smblib)
+double_require_lib(uedit uifc)
+target_include_directories(uedit PRIVATE ..)
+if(CURSES_FOUND)
+	target_compile_definitions(uedit PRIVATE HAS_CURSES)
+endif()
diff --git a/src/sbbs3/uedit/GNUmakefile b/src/sbbs3/uedit/GNUmakefile
index c9b4305ab593d1fc763a7babbfd5b952a816cd95..d640d86400a98e5d9773060fa98a9976f77911d5 100644
--- a/src/sbbs3/uedit/GNUmakefile
+++ b/src/sbbs3/uedit/GNUmakefile
@@ -22,7 +22,7 @@ endif
 
 vpath %.c ..
 
-CFLAGS	+=	-I.. -I../../comio $(SMBLIB_CFLAGS) $(UIFC-MT_CFLAGS) $(CIOLIB-MT_CFLAGS) $(XPDEV-MT_CFLAGS)
+CFLAGS	+=	-DHAS_CURSES -I.. -I../../comio $(SMBLIB_CFLAGS) $(UIFC-MT_CFLAGS) $(CIOLIB-MT_CFLAGS) $(XPDEV-MT_CFLAGS)
 LDFLAGS	+=	$(SMBLIB_LDFLAGS) $(UIFC-MT_LDFLAGS) $(CIOLIB-MT_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(MT_LDFLAGS)
 
 $(UEDIT): $(OBJS)
diff --git a/src/sbbs3/uedit/uedit.c b/src/sbbs3/uedit/uedit.c
index 0f597b7ca920b3c8f4484edd461f8910b7c2d3b9..837c1850eee651078b6faf43a493190c22f7ba9f 100644
--- a/src/sbbs3/uedit/uedit.c
+++ b/src/sbbs3/uedit/uedit.c
@@ -35,8 +35,6 @@
  * Note: If this box doesn't appear square, then you need to fix your tabs.	*
  ****************************************************************************/
 
-#include "ciolib.h"
-#include "sbbs.h"
 #include <sys/types.h>
 #include <time.h>
 #ifdef __QNX__
@@ -49,6 +47,9 @@
 #include <signal.h>
 #endif
 
+#include "ciolib.h"
+#include "sbbs.h"
+
 #include "genwrap.h"
 #include "uifc.h"
 #include "sbbsdefs.h"
@@ -201,12 +202,14 @@ int do_cmd(char *cmd)
 {
 	int i;
 
-#ifdef __unix__
-	endwin();
+#ifdef HAS_CURSES
+	if(cio_api.mode == CIOLIB_MODE_CURSES || cio_api.mode == CIOLIB_MODE_CURSES_IBM)
+		endwin();
 #endif
 	i=system(cmd);
-#ifdef __unix__
-	refresh();
+#ifdef HAS_CURSES
+	if(cio_api.mode == CIOLIB_MODE_CURSES || cio_api.mode == CIOLIB_MODE_CURSES_IBM)
+		refresh();
 #endif
 	return(i);
 }