diff --git a/GUI/Models/RectangularDetectorItem.cpp b/GUI/Models/RectangularDetectorItem.cpp
index 11753e89799c74ea52db5281518c7d8ca6d792f4..d8b334c43910a6957fde6e44e4530f9de3f5af1a 100644
--- a/GUI/Models/RectangularDetectorItem.cpp
+++ b/GUI/Models/RectangularDetectorItem.cpp
@@ -209,6 +209,16 @@ void RectangularDetectorItem::setNormalVector(const kvector_t& normal)
     item<VectorItem>(P_NORMAL)->setVector(normal);
 }
 
+SessionItem* RectangularDetectorItem::directionVectorItem() const
+{
+    return getItem(P_DIRECTION);
+}
+
+void RectangularDetectorItem::setDirectionVector(const kvector_t& direction)
+{
+    item<VectorItem>(P_DIRECTION)->setVector(direction);
+}
+
 std::unique_ptr<IDetector2D> RectangularDetectorItem::createDomainDetector() const
 {
     // basic axes parameters
diff --git a/GUI/Models/RectangularDetectorItem.h b/GUI/Models/RectangularDetectorItem.h
index 9058958fcadc131898c1d6d6cdb49b4ab66b089d..3a2c313d354e1a9c61719281f576c86bb21da9eb 100644
--- a/GUI/Models/RectangularDetectorItem.h
+++ b/GUI/Models/RectangularDetectorItem.h
@@ -27,9 +27,9 @@ private:
     static const QString P_Y_AXIS;
     static const QString P_ALIGNMENT;
     static const QString P_NORMAL;
+    static const QString P_DIRECTION;
 
 public:
-    static const QString P_DIRECTION;
     static const QString P_U0;
     static const QString P_V0;
     static const QString P_DBEAM_U0;
@@ -58,6 +58,9 @@ public:
     SessionItem* normalVectorItem() const;
     void setNormalVector(const kvector_t& normal);
 
+    SessionItem* directionVectorItem() const;
+    void setDirectionVector(const kvector_t& direction);
+
 private:
     std::unique_ptr<IDetector2D> createDomainDetector() const override;
     void update_properties_appearance();
diff --git a/GUI/Models/TransformFromDomain.cpp b/GUI/Models/TransformFromDomain.cpp
index c02f6b22543d959e43dbfaee3e8a1d8e7797834c..5ff59801329606bf20c3e455af791a04981e5760 100644
--- a/GUI/Models/TransformFromDomain.cpp
+++ b/GUI/Models/TransformFromDomain.cpp
@@ -392,7 +392,7 @@ void TransformFromDomain::setRectangularDetector(RectangularDetectorItem* detect
         detector_item->setNormalVector(normal);
 
         kvector_t direction = detector.getDirectionVector();
-        detector_item->item<VectorItem>(RectangularDetectorItem::P_DIRECTION)->setVector(direction);
+        detector_item->setDirectionVector(direction);
 
         detector_item->setItemValue(RectangularDetectorItem::P_U0, detector.getU0());
         detector_item->setItemValue(RectangularDetectorItem::P_V0, detector.getV0());
diff --git a/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp b/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
index a1e869021a625557d0043313d51f9880caab6a72..8e5e60a32e0485da9dc2b3c827991a6f91f3ddc3 100644
--- a/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
+++ b/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
@@ -141,7 +141,7 @@ void RectangularDetectorEditor::init_alignment_editors()
         auto normalVectorItem = detectorItem()->normalVectorItem();
         m_normalEditor->setItem(normalVectorItem);
 
-        auto directionVectorItem = detectorItem()->getItem(RectangularDetectorItem::P_DIRECTION);
+        auto directionVectorItem = detectorItem()->directionVectorItem();
         m_directionEditor->setItem(directionVectorItem);
 
     } else if (alignment.getValue() == "Perpendicular to direct beam"