diff --git a/Help/command/if.rst b/Help/command/if.rst
index 0941029e259061b1e4532a7ac224c60591ffe84b..2a087d0ac104b918d82f452840be76989e90897c 100644
--- a/Help/command/if.rst
+++ b/Help/command/if.rst
@@ -9,17 +9,17 @@ Conditionally execute a group of commands.
    # then section.
    COMMAND1(ARGS ...)
    COMMAND2(ARGS ...)
-   ...
+   #...
  elseif(expression2)
    # elseif section.
    COMMAND1(ARGS ...)
    COMMAND2(ARGS ...)
-   ...
+   #...
  else(expression)
    # else section.
    COMMAND1(ARGS ...)
    COMMAND2(ARGS ...)
-   ...
+   #...
  endif(expression)
 
 Evaluates the given expression.  If the result is true, the commands
diff --git a/Help/manual/cmake-developer.7.rst b/Help/manual/cmake-developer.7.rst
index 46b922b7eabeec1357acf090e27f3206727adf6c..f77d8c0532b5afae4b28b0e01e214d74e5d13b8e 100644
--- a/Help/manual/cmake-developer.7.rst
+++ b/Help/manual/cmake-developer.7.rst
@@ -540,7 +540,7 @@ a :ref:`Line Comment` block of the form:
 
 or a :ref:`Bracket Comment` of the form:
 
-.. code-block:: cmake
+::
 
  #[[.rst:
  <module-name>
@@ -558,7 +558,7 @@ All such comments must start with ``#`` in the first column.
 
 For example, a ``Modules/Findxxx.cmake`` module may contain:
 
-.. code-block:: cmake
+::
 
  # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
  # file Copyright.txt or https://cmake.org/licensing for details.
diff --git a/Help/manual/cmake-language.7.rst b/Help/manual/cmake-language.7.rst
index 41542c91424936ef205cc2f0c68f7f87ab49caf8..ba0b30fc73d1a52b099673c804b30901a28462b7 100644
--- a/Help/manual/cmake-language.7.rst
+++ b/Help/manual/cmake-language.7.rst
@@ -255,7 +255,7 @@ invocation as exactly one argument.
 
 For example:
 
-.. code-block:: cmake
+::
 
  message("This is a quoted argument containing multiple lines.
  This is always one argument even though it contains a ; character.
@@ -421,7 +421,7 @@ A ``#`` immediately followed by a `Bracket Argument`_ forms a
 
 For example:
 
-.. code-block:: cmake
+::
 
  #[[This is a bracket comment.
  It runs until the close bracket.]]
diff --git a/Modules/CMakePackageConfigHelpers.cmake b/Modules/CMakePackageConfigHelpers.cmake
index 32102221534514c5f22ef5f890dbc3c2f6b0d1b7..90c2a5719b56644203d78ec8e9d7b94aadd644f4 100644
--- a/Modules/CMakePackageConfigHelpers.cmake
+++ b/Modules/CMakePackageConfigHelpers.cmake
@@ -40,7 +40,7 @@
 #    set(FOO_INCLUDE_DIR   "@CMAKE_INSTALL_FULL_INCLUDEDIR@" )
 #    set(FOO_DATA_DIR   "@CMAKE_INSTALL_PREFIX@/@RELATIVE_DATA_INSTALL_DIR@" )
 #    set(FOO_ICONS_DIR   "@CMAKE_INSTALL_PREFIX@/share/icons" )
-#    ...logic to determine installedPrefix from the own location...
+#    #...logic to determine installedPrefix from the own location...
 #    set(FOO_CONFIG_DIR  "${installedPrefix}/@CONFIG_INSTALL_DIR@" )
 #
 # All 4 options shown above are not sufficient, since the first 3 hardcode the
@@ -174,7 +174,7 @@
 #    set(INCLUDE_INSTALL_DIR include/ ... CACHE )
 #    set(LIB_INSTALL_DIR lib/ ... CACHE )
 #    set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE )
-#    ...
+#    #...
 #    include(CMakePackageConfigHelpers)
 #    configure_package_config_file(FooConfig.cmake.in
 #      ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
@@ -190,7 +190,7 @@
 #
 # ``FooConfig.cmake.in``:
 #
-# .. code-block:: cmake
+# ::
 #
 #    set(FOO_VERSION x.y.z)
 #    ...
diff --git a/Utilities/Sphinx/apply_qthelp_css_workaround.cmake b/Utilities/Sphinx/apply_qthelp_css_workaround.cmake
index 8b74d12bb74437e4f787dcdf5c75f9d6b6e7c393..288f370ea514ac350abf6d711cdc5534c55fbb76 100644
--- a/Utilities/Sphinx/apply_qthelp_css_workaround.cmake
+++ b/Utilities/Sphinx/apply_qthelp_css_workaround.cmake
@@ -1,11 +1,15 @@
 
 file(READ "${CSS_DIR}/basic.css" BasicCssContent)
 
-file(READ "${CSS_DIR}/default.css" DefaultCssContent)
-string(REPLACE
-  "@import url(\"basic.css\")" "${BasicCssContent}"
-  DefaultCssContent "${DefaultCssContent}"
-)
+if(EXISTS "${CSS_DIR}/default.css")
+  file(READ "${CSS_DIR}/default.css" DefaultCssContent)
+  string(REPLACE
+    "@import url(\"basic.css\")" "${BasicCssContent}"
+    DefaultCssContent "${DefaultCssContent}"
+  )
+else()
+  set(DefaultCssContent "${BasicCssContent}")
+endif()
 
 file(READ "${CSS_DIR}/cmake.css" CMakeCssContent)
 string(REPLACE
diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py
index edc7667b21b09cc87081b6a92822806960642204..6f273f91d5a341f8d8f7d38310d9a57a4414e0db 100644
--- a/Utilities/Sphinx/cmake.py
+++ b/Utilities/Sphinx/cmake.py
@@ -46,7 +46,7 @@ from sphinx.directives import ObjectDescription
 from sphinx.domains import Domain, ObjType
 from sphinx.roles import XRefRole
 from sphinx.util.nodes import make_refnode
-from sphinx import addnodes
+from sphinx import addnodes, version_info
 
 class CMakeModule(Directive):
     required_arguments = 1
@@ -123,7 +123,11 @@ class _cmake_index_entry:
         self.desc = desc
 
     def __call__(self, title, targetid, main = 'main'):
-        return ('pair', u'%s ; %s' % (self.desc, title), targetid, main)
+        # See https://github.com/sphinx-doc/sphinx/issues/2673
+        if version_info < (1, 4):
+            return ('pair', u'%s ; %s' % (self.desc, title), targetid, main)
+        else:
+            return ('pair', u'%s ; %s' % (self.desc, title), targetid, main, None)
 
 _cmake_index_objs = {
     'command':    _cmake_index_entry('command'),