diff --git a/src/reference/SingleDomainRMSD.cpp b/src/reference/SingleDomainRMSD.cpp
index 28d21bb1e963da2953bcdb1f4d02d8374505ce8a..ec266b14371f335cf3b78496ebbbe3678ae42d2c 100644
--- a/src/reference/SingleDomainRMSD.cpp
+++ b/src/reference/SingleDomainRMSD.cpp
@@ -52,6 +52,9 @@ void SingleDomainRMSD::setReferenceAtoms( const std::vector<Vector>& conf, const
   double wa=0, wd=0;
   for(unsigned i=0; i<conf.size(); ++i) { wa+=align_in[i]; wd+=displace_in[i]; }
 
+  plumed_massert(wa>epsilon,"It looks like weights used for alignment are zero. Check your reference PDB file.");
+  plumed_massert(wd>epsilon,"It looks like weights used for displacement are zero. Check your reference PDB file.");
+
   Vector center;
   for(unsigned i=0; i<conf.size(); ++i) {
     align[i]=align_in[i] / wa; displace[i]=displace_in[i] / wd;