diff --git a/CMake/FindMuParser.cmake b/CMake/FindMuParser.cmake
index 095c5de706edac519ecd2fb2ce3c04dc7a107e13..09460c9ce3db5463711408de9c9069d6293af579 100644
--- a/CMake/FindMuParser.cmake
+++ b/CMake/FindMuParser.cmake
@@ -4,6 +4,11 @@
 #   MUPARSER_FOUND        - True if MuParser found.
 #   MUPARSER_INCLUDE_DIRS - where to find muParser.h, etc.
 #   MUPARSER_LIBRARIES    - List of libraries when using MuParser.
+#   MUPARSER_VERSION        - version string
+#   MUPARSER_VERSION_MAJOR  - version major number
+#   MUPARSER_VERSION_MINOR  - version minor number
+#   MUPARSER_VERSION_PATCH  - version patch number
+#   MUPARSER_VERSION_NUMBER - version number ((major*100)+minor)*100+patch
 #
 
 if( MUPARSER_INCLUDE_DIR )
@@ -14,6 +19,20 @@ endif()
 find_path( MUPARSER_INCLUDE_DIR muParser.h
            PATH_SUFFIXES muParser )
 
+if(EXISTS "${MUPARSER_INCLUDE_DIR}/muParserDef.h")
+  file(READ "${MUPARSER_INCLUDE_DIR}/muParserDef.h" _muParserDef_h_CONTENTS)
+  string(REGEX REPLACE ".*# *define MUP_VERSION *_T\\(\"([0-9.]+)\"\\).*" "\\1" MUPARSER_VERSION "${_muParserDef_h_CONTENTS}")
+  string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" MUPARSER_VERSION_MAJOR "${MUPARSER_VERSION}")
+  string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" MUPARSER_VERSION_MINOR "${MUPARSER_VERSION}")
+  string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" MUPARSER_VERSION_PATCH "${MUPARSER_VERSION}")
+  math(EXPR MUPARSER_VERSION_NUMBER
+    "((${MUPARSER_VERSION_MAJOR})*100+${MUPARSER_VERSION_MINOR})*100+${MUPARSER_VERSION_PATCH}")
+else()
+  if(NOT MuParser_FIND_QUIETLY)
+  message(WARNING "muParserDef.h not found !")
+  endif()
+endif()
+
 find_library( MUPARSER_LIBRARY
               NAMES muparser
               PATH_SUFFIXES muparser )