diff --git a/Cargo.lock b/Cargo.lock
index e329661e0bdd..7bb0ee98abf9 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1095,7 +1095,7 @@ dependencies = [
 
 [[package]]
 name = "qiskit-accelerate"
-version = "1.1.1"
+version = "1.1.2"
 dependencies = [
  "ahash 0.8.11",
  "approx",
@@ -1122,7 +1122,7 @@ dependencies = [
 
 [[package]]
 name = "qiskit-circuit"
-version = "1.1.1"
+version = "1.1.2"
 dependencies = [
  "hashbrown 0.14.5",
  "pyo3",
@@ -1130,7 +1130,7 @@ dependencies = [
 
 [[package]]
 name = "qiskit-pyext"
-version = "1.1.1"
+version = "1.1.2"
 dependencies = [
  "pyo3",
  "qiskit-accelerate",
@@ -1141,7 +1141,7 @@ dependencies = [
 
 [[package]]
 name = "qiskit-qasm2"
-version = "1.1.1"
+version = "1.1.2"
 dependencies = [
  "hashbrown 0.14.5",
  "num-bigint",
@@ -1151,7 +1151,7 @@ dependencies = [
 
 [[package]]
 name = "qiskit-qasm3"
-version = "1.1.1"
+version = "1.1.2"
 dependencies = [
  "hashbrown 0.14.5",
  "indexmap 2.2.6",
diff --git a/Cargo.toml b/Cargo.toml
index 156bb41ce0c8..549bff81078f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,7 +3,7 @@ members = ["crates/*"]
 resolver = "2"
 
 [workspace.package]
-version = "1.1.1"
+version = "1.1.2"
 edition = "2021"
 rust-version = "1.70"  # Keep in sync with README.md and rust-toolchain.toml.
 license = "Apache-2.0"
diff --git a/docs/conf.py b/docs/conf.py
index 319d445c1b0d..d19dd7761738 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -32,7 +32,7 @@
 # The short X.Y version
 version = "1.1"
 # The full version, including alpha/beta/rc tags
-release = "1.1.1"
+release = "1.1.2"
 
 language = "en"
 
diff --git a/qiskit/VERSION.txt b/qiskit/VERSION.txt
index 524cb55242b5..45a1b3f44523 100644
--- a/qiskit/VERSION.txt
+++ b/qiskit/VERSION.txt
@@ -1 +1 @@
-1.1.1
+1.1.2
diff --git a/qiskit/visualization/bloch.py b/qiskit/visualization/bloch.py
index bae0633a811c..8c12a4c074f9 100644
--- a/qiskit/visualization/bloch.py
+++ b/qiskit/visualization/bloch.py
@@ -50,6 +50,7 @@
 
 import math
 import os
+import re
 import numpy as np
 import matplotlib
 import matplotlib.pyplot as plt
@@ -60,6 +61,47 @@
 from .utils import matplotlib_close_if_inline
 
 
+# This version pattern is taken from the pypa packaging project:
+# https://github.com/pypa/packaging/blob/21.3/packaging/version.py#L223-L254
+# which is dual licensed Apache 2.0 and BSD see the source for the original
+# authors and other details
+VERSION_PATTERN = (
+    "^"
+    + r"""
+    v?
+    (?:
+        (?:(?P<epoch>[0-9]+)!)?                           # epoch
+        (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
+        (?P<pre>                                          # pre-release
+            [-_\.]?
+            (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
+            [-_\.]?
+            (?P<pre_n>[0-9]+)?
+        )?
+        (?P<post>                                         # post release
+            (?:-(?P<post_n1>[0-9]+))
+            |
+            (?:
+                [-_\.]?
+                (?P<post_l>post|rev|r)
+                [-_\.]?
+                (?P<post_n2>[0-9]+)?
+            )
+        )?
+        (?P<dev>                                          # dev release
+            [-_\.]?
+            (?P<dev_l>dev)
+            [-_\.]?
+            (?P<dev_n>[0-9]+)?
+        )?
+    )
+    (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
+"""
+    + "$"
+)
+VERSION_PATTERN_REGEX = re.compile(VERSION_PATTERN, re.VERBOSE | re.IGNORECASE)
+
+
 class Arrow3D(Patch3D, FancyArrowPatch):
     """Makes a fancy arrow"""
 
@@ -419,7 +461,8 @@ def render(self, title=""):
             self.fig = plt.figure(figsize=self.figsize)
 
         if not self._ext_axes:
-            if tuple(int(x) for x in matplotlib.__version__.split(".")) >= (3, 4, 0):
+            version_match = VERSION_PATTERN_REGEX.search(matplotlib.__version__)
+            if tuple(int(x) for x in version_match.group("release").split(".")) >= (3, 4, 0):
                 self.axes = Axes3D(
                     self.fig, azim=self.view[0], elev=self.view[1], auto_add_to_figure=False
                 )
diff --git a/releasenotes/notes/fix-collect-clifford-83af26d98b8c69e8.yaml b/releasenotes/notes/fix-collect-clifford-83af26d98b8c69e8.yaml
index 48eac19acc9d..aa33d901454f 100644
--- a/releasenotes/notes/fix-collect-clifford-83af26d98b8c69e8.yaml
+++ b/releasenotes/notes/fix-collect-clifford-83af26d98b8c69e8.yaml
@@ -1,6 +1,6 @@
 ---
 fixes:
   - |
-    Add more Clifford gates to the :class:`.CollectCliffords()` transpiler pass.
-    In particular, we have added the gates :class:`ECRGate()`, :class:`DCXGate()`,
-    :class:`iSWAPGate()`, :class:`SXGate()` and :class:`SXdgGate()` to this transpiler pass.
+    Added missing Clifford gates to the :class:`.CollectCliffords` transpiler pass.
+    In particular, we have added the gates :class:`.ECRGate`, :class:`.DCXGate`,
+    :class:`.iSWAPGate`, :class:`.SXGate` and :class:`.SXdgGate` to this transpiler pass.
diff --git a/releasenotes/notes/fix-sk-load-from-file-02c6eabbbd7fcda3.yaml b/releasenotes/notes/fix-sk-load-from-file-02c6eabbbd7fcda3.yaml
index d995af06bccb..3badb856fab6 100644
--- a/releasenotes/notes/fix-sk-load-from-file-02c6eabbbd7fcda3.yaml
+++ b/releasenotes/notes/fix-sk-load-from-file-02c6eabbbd7fcda3.yaml
@@ -2,7 +2,7 @@
 fixes:
   - |
     Fix the :class:`.SolovayKitaev` transpiler pass when loading basic
-    approximations from an exising ``.npy`` file. Previously, loading
+    approximations from an existing ``.npy`` file. Previously, loading
     a stored approximation which allowed for further reductions (e.g. due
     to gate cancellations) could cause a runtime failure.
     Additionally, the global phase difference of the U(2) gate product
diff --git a/releasenotes/notes/fixes_GenericBackendV2-668e40596e1f070d.yaml b/releasenotes/notes/fixes_GenericBackendV2-668e40596e1f070d.yaml
index 9d297125e3c2..c3dec7a008ee 100644
--- a/releasenotes/notes/fixes_GenericBackendV2-668e40596e1f070d.yaml
+++ b/releasenotes/notes/fixes_GenericBackendV2-668e40596e1f070d.yaml
@@ -1,4 +1,4 @@
 ---
 fixes:
   - |
-    The constructor :class:`.GenericBackendV2` was allowing to create malformed backends because it accepted basis gates that couldn't be allocated in the backend size . That is, a backend with a single qubit should not accept a basis with two-qubit gates.
+    The constructor :class:`.GenericBackendV2` previously allowed malformed backends to be constructed because it accepted basis gates that couldn't be allocated given the backend size. For example, a backend with a single qubit could previously accept a basis with two-qubit gates.
diff --git a/releasenotes/notes/prepare-1.1.2-d8fbe626771ab48d.yaml b/releasenotes/notes/prepare-1.1.2-d8fbe626771ab48d.yaml
new file mode 100644
index 000000000000..5b8dc852700a
--- /dev/null
+++ b/releasenotes/notes/prepare-1.1.2-d8fbe626771ab48d.yaml
@@ -0,0 +1,3 @@
+---
+prelude: >
+    Qiskit 1.1.2 is a minor bugfix release for the 1.1 series.
diff --git a/releasenotes/notes/raise-on-illegal-replace-block-50cef8da757a580a.yaml b/releasenotes/notes/raise-on-illegal-replace-block-50cef8da757a580a.yaml
index f4971fe520a0..0bc1e8e5a1df 100644
--- a/releasenotes/notes/raise-on-illegal-replace-block-50cef8da757a580a.yaml
+++ b/releasenotes/notes/raise-on-illegal-replace-block-50cef8da757a580a.yaml
@@ -1,7 +1,7 @@
 ---
 fixes:
   - |
-    Previously, :meth:`.DAGCircuit.replace_block_with_op` allowed to place an
-    ``n``-qubit operation onto a block of ``m`` qubits, leaving the DAG in an
-    invalid state. This behavior has been fixed, and the attempt will raise
-    a :class:`.DAGCircuitError`.
+    Previously, :meth:`.DAGCircuit.replace_block_with_op` allowed an
+    ``n``-qubit operation to be placed onto a block of ``m`` qubits, leaving the DAG in an
+    invalid state. This behavior has been fixed, and any attempt to do this will now raise
+    a :class:`.DAGCircuitError` as expected.