diff --git a/src/Distribution/Distribution.cpp b/src/Distribution/Distribution.cpp
index b5286c0db6599661345a9c7dd9972c1be54765ae..93468bd9af0daf6f712e9a90546fda1d5ed9e1bf 100644
--- a/src/Distribution/Distribution.cpp
+++ b/src/Distribution/Distribution.cpp
@@ -842,7 +842,7 @@ void Distribution::checkIfEmitted() {
     }
 }
 
-void Distribution::checkParticleNumber(size_t &numberOfParticles) {
+void Distribution::checkParticleNumber(size_t& numberOfParticles) {
 
     size_t numberOfDistParticles = tOrZDist_m.size();
     reduce(numberOfDistParticles, numberOfDistParticles, OpAddAssign());
@@ -853,6 +853,11 @@ void Distribution::checkParticleNumber(size_t &numberOfParticles) {
                             "The number of particles needs to be specified.");
     }
 
+    if (numberOfParticles == 1 && Ippl::getNodes() != 1) {
+        throw OpalException("Distribution::checkParticleNumber",
+                            "A single particle distribution works serially on single node");
+    }
+
     if (numberOfDistParticles != numberOfParticles) {
         throw OpalException("Distribution::checkParticleNumber",
                             "The number of particles in the initial\n"