diff --git a/modules/mol/alg/src/accessibility.cc b/modules/mol/alg/src/accessibility.cc
index 6b3903638fd5829e98b543e1c4051261b04f68ae..a1becdd7f83c3de0b939e22788d6bf4bb3f22926 100644
--- a/modules/mol/alg/src/accessibility.cc
+++ b/modules/mol/alg/src/accessibility.cc
@@ -742,13 +742,19 @@ Real SetAccessibilityProps(ost::mol::EntityView& ent,
                            const String& asa_rel,
                            ost::mol::alg::AccessibilityAlgorithm algorithm) {
 
+  // first set accessibilities of all involved residues to 0.0
+  for(uint idx = 0; idx < asa.size(); ++idx) {
+    ost::mol::ResidueView res = atom_list[idx].GetResidue();
+    res.SetFloatProp(asa_abs, 0.0);
+  }
+
   // assign absolute accessibilities
   Real summed_asa = 0.0;
   for(uint idx = 0; idx < asa.size(); ++idx) {
     Real val = asa[idx];
     atom_list[idx].SetFloatProp(asa_atom, val);
     ost::mol::ResidueView res = atom_list[idx].GetResidue();
-    Real current_asa = res.GetFloatProp(asa_abs, 0.0);
+    Real current_asa = res.GetFloatProp(asa_abs);
     res.SetFloatProp(asa_abs, current_asa + val);
     summed_asa += val;
   }