diff --git a/ciolib/CMakeLists.txt b/ciolib/CMakeLists.txt
index ef22e46f2becd226056c017391b80e111a1faf26..1de542476abc902a989852038ebcf955cef685ef 100644
--- a/ciolib/CMakeLists.txt
+++ b/ciolib/CMakeLists.txt
@@ -91,6 +91,14 @@ endif()
 
 add_library(ciolib OBJECT ${SOURCE})
 target_include_directories(ciolib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+if(CURSES_FOUND)
+	if(${CMAKE_SYSTEM_NAME} MATCHES "(Free|Open|Net)BSD")
+		list(APPEND SOURCE curs_cio.c)
+		set(USE_CURSES_ANYWAY TRUE)
+	else()
+		message(FATAL_ERROR "ncursesw not found")
+	endif()
+endif()
 
 if(X11_FOUND)
 	target_include_directories(ciolib PRIVATE ${X11_INCLUDE_DIR})
@@ -108,9 +116,10 @@ if(NOT WIN32)
 endif()
 
 if(USE_CURSES_ANYWAY)
-	if(CURSES_HAVE_NCURSES_H)
+	if (CURSES_HAVE_NCURSES_NCURSES_H)
+		target_compile_definitions(ciolib PRIVATE DEBIAN_HATES_YOU)
+	elseif(CURSES_HAVE_NCURSES_H)
 		target_compile_definitions(ciolib PRIVATE N_CURSES_LIB)
-		set(N_CURSES_LIB TRUE PARENT_SCOPE)
 	endif()
 	target_link_libraries(ciolib ${CURSES_NCURSES_LIBRARY})
 	target_link_libraries(ciolib ${CURSES_TINFO_LIBRARY_NAME})