diff --git a/CMake/Modules/FindReadline.cmake b/CMake/Modules/FindReadline.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..19c32fdd4f11c528f316a997c3ef4a5c30d5d6cc
--- /dev/null
+++ b/CMake/Modules/FindReadline.cmake
@@ -0,0 +1,34 @@
+# - Try to find readline include dirs and libraries
+#
+# Usage of this module as follows:
+#
+#     find_package(Readline)
+#
+# Variables defined by this module:
+#
+#  READLINE_FOUND            System has readline, include and lib dirs found
+#  Readline_INCLUDE_DIR      The readline include directories.
+#  Readline_LIBRARY          The readline library.
+
+find_path(READLINE_INCLUDE_DIR NAMES readline/readline.h)
+find_library(READLINE_LIBRARY NAMES readline HINTS)
+
+if(READLINE_INCLUDE_DIR)
+	file(READ "${READLINE_INCLUDE_DIR}/readline/readline.h" READLINE_VERSION_FILE)
+
+	string(REGEX MATCH "RL_VERSION_MAJOR[\ \t]*([0-9]*)" _ ${READLINE_VERSION_FILE})
+	set(READLINE_VERSION ${CMAKE_MATCH_1})
+
+	string(REGEX MATCH "RL_VERSION_MINOR[\ \t]*([0-9]*)" _ ${READLINE_VERSION_FILE})
+	set(READLINE_VERSION "${READLINE_VERSION}.${CMAKE_MATCH_1}")
+endif()
+
+# Handle the QUIETLY and REQUIRED arguments and set GRAPHVIZ_FOUND to TRUE if all listed variables are TRUE.
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Readline
+	FOUND_VAR READLINE_FOUND
+	REQUIRED_VARS READLINE_INCLUDE_DIR READLINE_LIBRARY
+	VERSION_VAR READLINE_VERSION
+	)
+
+mark_as_advanced(READLINE_INCLUDE_DIR READLINE_LIBRARY)
diff --git a/CMake/Modules/Findreadline.cmake b/CMake/Modules/Findreadline.cmake
deleted file mode 100644
index c3e32b79f479d4834fdbb417afba728c3951b302..0000000000000000000000000000000000000000
--- a/CMake/Modules/Findreadline.cmake
+++ /dev/null
@@ -1,47 +0,0 @@
-# - Try to find readline include dirs and libraries
-#
-# Usage of this module as follows:
-#
-#     find_package(Readline)
-#
-# Variables used by this module, they can change the default behaviour and need
-# to be set before calling find_package:
-#
-#  Readline_ROOT_DIR         Set this variable to the root installation of
-#                            readline if the module has problems finding the
-#                            proper installation path.
-#
-# Variables defined by this module:
-#
-#  READLINE_FOUND            System has readline, include and lib dirs found
-#  Readline_INCLUDE_DIR      The readline include directories.
-#  Readline_LIBRARY          The readline library.
-
-find_path(Readline_ROOT_DIR
-        NAMES include/readline/readline.h
-        )
-
-find_path(Readline_INCLUDE_DIR
-        NAMES readline/readline.h
-        HINTS ${Readline_ROOT_DIR}/include
-        )
-
-find_library(Readline_LIBRARY
-        NAMES readline
-        HINTS ${Readline_ROOT_DIR}/lib
-        )
-
-if (Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY)
-    set(READLINE_FOUND TRUE)
-else (Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY)
-    FIND_LIBRARY(Readline_LIBRARY NAMES readline)
-    include(FindPackageHandleStandardArgs)
-    FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG Readline_INCLUDE_DIR Readline_LIBRARY)
-    MARK_AS_ADVANCED(Readline_INCLUDE_DIR Readline_LIBRARY)
-endif (Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY)
-
-mark_as_advanced(
-        Readline_ROOT_DIR
-        Readline_INCLUDE_DIR
-        Readline_LIBRARY
-)
diff --git a/CMake/generate.conf b/CMake/generate.conf
index 490dd0604f4e71ff5e988905bf93703a8d37e902..09c61c5aa679038be90f7c6ed74e4eb4de557230 100644
--- a/CMake/generate.conf
+++ b/CMake/generate.conf
@@ -62,6 +62,6 @@ include: ${JSONCPP_INCLUDE_DIR}
 find: jsoncpp REQUIRED
 
 [CMake:Deps:readline]
-link: ${Readline_LIBRARY}
-include: ${Readline_INCLUDE_DIR}
-find: readline REQUIRED
+link: ${READLINE_LIBRARY}
+include: ${READLINE_INCLUDE_DIR}
+find: Readline REQUIRED