diff --git a/docs/releasenotes/_ext/retina_images.py b/docs/releasenotes/_ext/retina_images.py
new file mode 100644
index 0000000000000000000000000000000000000000..32aecfd80a8cf6c4c804a8b174df09606bd32c36
--- /dev/null
+++ b/docs/releasenotes/_ext/retina_images.py
@@ -0,0 +1,44 @@
+"""Sphinx extension for Retina images.
+
+This extension goes through all the images Sphinx will provide in _images and
+checks if Retina versions are available. If there are any, they will be copied
+as well.
+"""
+import os
+
+
+def add_retina_images(app, env):
+    retina_images = []
+
+    for full_path, (docnames, filename) in env.images.iteritems():
+        base, ext = os.path.splitext(full_path)
+        retina_path = base + '@2x' + ext
+
+        if os.path.exists(retina_path):
+            retina_images += [
+                (docname, retina_path)
+                for docname in docnames
+            ]
+
+    for docname, path in retina_images:
+        env.images.add_file(docname, path)
+
+
+def collect_pages(app):
+    new_images = {}
+
+    for full_path, basename in app.builder.images.iteritems():
+        base, ext = os.path.splitext(full_path)
+        retina_path = base + '@2x' + ext
+
+        if retina_path in app.env.images:
+            new_images[retina_path] = app.env.images[retina_path][1]
+
+    app.builder.images.update(new_images)
+
+    return []
+
+
+def setup(app):
+    app.connect('env-updated', add_retina_images)
+    app.connect('html-collect-pages', collect_pages)
diff --git a/docs/releasenotes/conf.py b/docs/releasenotes/conf.py
index 1a308a8182189f42e85428c612c00119a9f25bd8..8a9965c4331bba7a26d6157629909681fc6829c0 100644
--- a/docs/releasenotes/conf.py
+++ b/docs/releasenotes/conf.py
@@ -37,7 +37,7 @@ import reviewboard
 
 # Add any Sphinx extension module names here, as strings. They can be extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.intersphinx', 'extralinks']
+extensions = ['sphinx.ext.intersphinx', 'extralinks', 'retina_images']
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
