diff --git a/Framework/Algorithms/inc/MantidAlgorithms/AlignDetectors.h b/Framework/Algorithms/inc/MantidAlgorithms/AlignDetectors.h
index de48ddb74647f7caebbacea08caf0a03b07447b2..6d5dd1fb37c9a8fd5a1ecf8dfae60517a5243065 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/AlignDetectors.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/AlignDetectors.h
@@ -72,6 +72,11 @@ public:
   /// Cross-check properties with each other @see IAlgorithm::validateInputs
   std::map<std::string, std::string> validateInputs() override;
 
+protected:
+  Parallel::ExecutionMode getParallelExecutionMode(
+      const std::map<std::string, Parallel::StorageMode> &storageModes)
+      const override;
+
 private:
   // Implement abstract Algorithm methods
   void init() override;
diff --git a/Framework/Algorithms/src/AlignDetectors.cpp b/Framework/Algorithms/src/AlignDetectors.cpp
index 96d3731959288402f6cb14fb659f9ac7705a4966..d36670cb4709824fe18421e758097dbedd84491f 100644
--- a/Framework/Algorithms/src/AlignDetectors.cpp
+++ b/Framework/Algorithms/src/AlignDetectors.cpp
@@ -318,5 +318,16 @@ void AlignDetectors::align(const ConversionFactors &converter,
   outputWS.clearMRU();
 }
 
+Parallel::ExecutionMode AlignDetectors::getParallelExecutionMode(
+    const std::map<std::string, Parallel::StorageMode> &storageModes) const {
+  using namespace Parallel;
+  const auto inputMode = storageModes.at("InputWorkspace");
+  const auto &calibrationMode = storageModes.find("CalibrationWorkspace");
+  if (calibrationMode != storageModes.end())
+    if (calibrationMode->second != StorageMode::Cloned)
+      return ExecutionMode::Invalid;
+  return getCorrespondingExecutionMode(inputMode);
+}
+
 } // namespace Algorithms
 } // namespace Mantid
diff --git a/dev-docs/source/AlgorithmMPISupport.rst b/dev-docs/source/AlgorithmMPISupport.rst
index 43326d3338ad2e32b1b13bc58a683949d3ec4eff..60e22f83bcc82718cb1661d0094b1275c222bf01 100644
--- a/dev-docs/source/AlgorithmMPISupport.rst
+++ b/dev-docs/source/AlgorithmMPISupport.rst
@@ -491,6 +491,7 @@ Supported Algorithms
 ====================================== ======================= ========
 Algorithm                              Supported modes         Comments
 ====================================== ======================= ========
+AlignDetectors                         all                     with ``StorageMode::Distributed`` this touches only detectors that have spectra on this rank, i.e., the modified instrument is not in an identical state on all ranks
 BinaryOperation                        all                     not supported if ``AllowDifferentNumberSpectra`` is enabled
 CalculateChiSquared                    MasterOnly, Identical   see ``IFittingAlgorithm``
 CalculateCostFunction                  MasterOnly, Identical   see ``IFittingAlgorithm``