diff --git a/modules/mol/alg/pymod/chain_mapping.py b/modules/mol/alg/pymod/chain_mapping.py
index 189bbae636e4fd9da822ddc91265eacf15409899..b19107ba5fc0640ed6a068a27517b0acd257a0aa 100644
--- a/modules/mol/alg/pymod/chain_mapping.py
+++ b/modules/mol/alg/pymod/chain_mapping.py
@@ -2212,40 +2212,15 @@ def _lDDTNaive(trg, mdl, inclusion_radius, thresholds, chem_groups,
     best_mapping = None
     best_lddt = -1.0
 
-    # Benchmarks on homo-oligomers indicate that full blown lDDT
-    # computation is faster up to tetramers => 4!=24 possible mappings.
-    # For stuff bigger than that, the decomposer approach should be used
-    if _NMappingsWithin(chem_groups, chem_mapping, 24):
-        # Setup scoring
-        lddt_scorer = lddt.lDDTScorer(trg, bb_only = True)
-        for mapping in _ChainMappings(chem_groups, chem_mapping, n_max_naive):
-            # chain_mapping and alns as input for lDDT computation
-            lddt_chain_mapping = dict()
-            lddt_alns = dict()
-            for ref_chem_group, mdl_chem_group in zip(chem_groups, mapping):
-                for ref_ch, mdl_ch in zip(ref_chem_group, mdl_chem_group):
-                    # some mdl chains can be None
-                    if mdl_ch is not None:
-                        lddt_chain_mapping[mdl_ch] = ref_ch
-                        lddt_alns[mdl_ch] = ref_mdl_alns[(ref_ch, mdl_ch)]
-            lDDT, _ = lddt_scorer.lDDT(mdl, thresholds=thresholds,
-                                       chain_mapping=lddt_chain_mapping,
-                                       residue_mapping = lddt_alns,
-                                       check_resnames = False)
-            if lDDT > best_lddt:
-                best_mapping = mapping
-                best_lddt = lDDT
-
-    else:
-        # Setup scoring
-        lddt_scorer = _lDDTDecomposer(trg, mdl, ref_mdl_alns,
-                                      inclusion_radius=inclusion_radius,
-                                      thresholds = thresholds)
-        for mapping in _ChainMappings(chem_groups, chem_mapping, n_max_naive):
-            lDDT = lddt_scorer.lDDT(chem_groups, mapping)
-            if lDDT > best_lddt:
-                best_mapping = mapping
-                best_lddt = lDDT
+    # Setup scoring
+    lddt_scorer = bb_lddt.BBlDDTScorer(trg, chem_groups, mdl, ref_mdl_alns,
+                                       dist_thresh=inclusion_radius,
+                                       dist_diff_thresholds=thresholds)
+    for mapping in _ChainMappings(chem_groups, chem_mapping, n_max_naive):
+        lDDT = lddt_scorer.Score(mapping, check=False)
+        if lDDT > best_lddt:
+            best_mapping = mapping
+            best_lddt = lDDT
 
     return (best_mapping, best_lddt)