diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/InstrumentView/RotationSurface.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/InstrumentView/RotationSurface.h
index 5e21f753185e7748e35c8ea7a7aa57867a25f2d6..0896d16f8005669ec61f4b5d371aa46942ce6177 100644
--- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/InstrumentView/RotationSurface.h
+++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/InstrumentView/RotationSurface.h
@@ -46,6 +46,11 @@ protected:
   /// UnwrappedSurface::project().
   double applyUCorrection(double u) const;
 
+  /// Update the view rect to offset for the U correction
+  void updateViewRectForUCorrection();
+  /// Calculate UV offsets from the view rect
+  std::pair<double, double> calculateViewRectOffsets();
+
   const Mantid::Kernel::V3D m_pos; ///< Origin (sample position)
   const Mantid::Kernel::V3D
       m_zaxis; ///< The z axis of the surface specific coord system
diff --git a/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp b/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp
index 65b053cb448e923448c40e046a63fb98f019597a..a1cd14e0cc1c60c5f0fda43f4bc669fc563f44cf 100644
--- a/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp
+++ b/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp
@@ -162,26 +162,42 @@ void RotationSurface::init() {
                             udet.u = applyUCorrection(udet.u);
                           }
                         }
+}
 
-                        double dU = fabs(m_u_max - m_u_min);
-                        double dV = fabs(m_v_max - m_v_min);
-                        double du = dU * 0.05;
-                        double dv = dV * 0.05;
-                        if (m_width_max > du && std::isfinite(m_width_max)) {
-                          if (du > 0 && !(dU >= m_width_max)) {
-                            m_width_max = dU;
-                          }
-                          du = m_width_max;
-                        }
-                        if (m_height_max > dv && std::isfinite(m_height_max)) {
-                          if (dv > 0 && !(dV >= m_height_max)) {
-                            m_height_max = dV;
-                          }
-                          dv = m_height_max;
-                        }
+/** Update the view rect to account for the U correction
+ */
+void RotationSurface::updateViewRectForUCorrection() {
+  const auto offsets = calculateViewRectOffsets();
+  const auto min = QPointF(m_u_min - offsets.first, m_v_min - offsets.second);
+  const auto max = QPointF(m_u_max + offsets.first, m_v_max + offsets.second);
+  m_viewRect = RectF(min, max);
+}
+
+/** Calculate UV offsets to the view rect
+ *
+ * @return a std::pair containing the u & v offsets for the view rect
+ */
+std::pair<double, double> RotationSurface::calculateViewRectOffsets() {
+  const auto dU = fabs(m_u_max - m_u_min);
+  const auto dV = fabs(m_v_max - m_v_min);
+  auto du = dU * 0.05;
+  auto dv = dV * 0.05;
+
+  if (m_width_max > du && std::isfinite(m_width_max)) {
+    if (du > 0 && !(dU >= m_width_max)) {
+      m_width_max = dU;
+    }
+    du = m_width_max;
+  }
+
+  if (m_height_max > dv && std::isfinite(m_height_max)) {
+    if (dv > 0 && !(dV >= m_height_max)) {
+      m_height_max = dV;
+    }
+    dv = m_height_max;
+  }
 
-                        m_viewRect = RectF(QPointF(m_u_min - du, m_v_min - dv),
-                                           QPointF(m_u_max + du, m_v_max + dv));
+  return std::make_pair(du, dv);
 }
 
 void RotationSurface::findUVBounds() {
@@ -308,6 +324,7 @@ void RotationSurface::setUCorrection(double umin, double umax) {
   }
   m_manual_u_correction = true;
   updateDetectors();
+  updateViewRectForUCorrection();
 }
 
 /**
@@ -316,6 +333,7 @@ void RotationSurface::setUCorrection(double umin, double umax) {
 void RotationSurface::setAutomaticUCorrection() {
   m_manual_u_correction = false;
   updateDetectors();
+  updateViewRectForUCorrection();
 }
 
 } // MantidWidgets
diff --git a/docs/source/release/v3.10.0/ui.rst b/docs/source/release/v3.10.0/ui.rst
index 16708099c14d90c883bdd4f08f5a891459082c33..3760a83001a16630b6692b8396e54dd38c0f88a8 100644
--- a/docs/source/release/v3.10.0/ui.rst
+++ b/docs/source/release/v3.10.0/ui.rst
@@ -19,6 +19,7 @@ User Interface
 
 Instrument View
 ###############
+ - Fixed a bug preventing the some of the banks from being visible when using a U correction.
 
 Plotting Improvements
 #####################