diff --git a/modules/mol/alg/pymod/scoring.py b/modules/mol/alg/pymod/scoring.py
index 9f88d18fc2db53b835d2a2e2560fff042ea55fce..500a046cd9b51aa8b0d93f2a65e41c6b917d0850 100644
--- a/modules/mol/alg/pymod/scoring.py
+++ b/modules/mol/alg/pymod/scoring.py
@@ -2225,10 +2225,6 @@ class Scorer:
         flat_mapping = self.mapping.GetFlatMapping(mdl_as_key=True)
 
         # make alignments accessible by mdl seq name
-        stereochecked_alns = dict()
-        for aln in self.stereochecked_aln:
-            mdl_seq = aln.GetSequence(1)
-            stereochecked_alns[mdl_seq.name] = aln
         alns = dict()
         for aln in self.aln:
             mdl_seq = aln.GetSequence(1)
@@ -2284,10 +2280,25 @@ class Scorer:
 
 
         else:
+            # keep track what chains we have in the stereochecked model
+            # there might be really wild cases where a full model
+            # chain is removed in the stereochemistry checks.
+            # We need to adapt lddt chain mapping in these cases
+            mdl_chains = set([ch.name for ch in self.stereochecked_model.chains])
+
+            # make alignments accessible by mdl seq name
+            stereochecked_alns = dict()
+            for aln in self.stereochecked_aln:
+                mdl_seq = aln.GetSequence(1)
+                if mdl_seq.GetName() in mdl_chains:
+                    stereochecked_alns[mdl_seq.name] = aln
+
             lddt_chain_mapping = dict()
             for mdl_ch, trg_ch in flat_mapping.items():
                 if mdl_ch in stereochecked_alns:
                     lddt_chain_mapping[mdl_ch] = trg_ch
+
+
             lddt_score = self.lddt_scorer.lDDT(self.stereochecked_model,
                                                chain_mapping = lddt_chain_mapping,
                                                residue_mapping = stereochecked_alns,