diff --git a/CMakeLists.txt b/CMakeLists.txt
index ba5cda9d..fe3e59f1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,9 +18,9 @@ include (CheckCXXSourceCompiles)
 include (CheckIncludeFile)
 include (CPack)
 
-# let's use & require C++11 - note these are only functional with CMake 3.1
+# let's use & require C++14 - note these are only functional with CMake 3.1
 # we do manual fallbacks for CMake 3.0 in the compilers section
-set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED YES)
 
 project(TerraGear)
@@ -153,9 +153,11 @@ if(CMAKE_COMPILER_IS_GNUCXX)
     set(WARNING_FLAGS -Wall)
 
     if (CMAKE_VERSION VERSION_LESS 3.1)
-       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
     endif()
-endif(CMAKE_COMPILER_IS_GNUCXX)
+elseif (MSVC AND CMAKE_VERSION VERSION_LESS 3.1)
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std=c++14")
+endif()
 
 if (WIN32)
     if (MSVC)
diff --git a/CMakeModules/FindSimGear.cmake b/CMakeModules/FindSimGear.cmake
index 906026b9..7d696dc0 100644
--- a/CMakeModules/FindSimGear.cmake
+++ b/CMakeModules/FindSimGear.cmake
@@ -188,9 +188,16 @@ unset(SIMGEAR_COMPILE_TEST CACHE)
 # disable OSG dependencies for test-compiling
 set(CMAKE_REQUIRED_DEFINITIONS "-DNO_OPENSCENEGRAPH_INTERFACE")
 
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED YES)
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+if ((NOT CMAKE_CXX_STANDARD) OR (${CMAKE_CXX_STANDARD} LESS 11))
+    set(CMAKE_CXX_STANDARD 11)
+    set(CMAKE_CXX_STANDARD_REQUIRED YES)
+
+    if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_VERSION VERSION_LESS 3.1)
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+    elseif (MSVC AND CMAKE_VERSION VERSION_LESS 3.1)
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std=c++11")
+    endif()
+endif()
 
 check_cxx_source_runs(
     "#include <cstdio>