diff --git a/modules/mol/alg/src/accessibility.cc b/modules/mol/alg/src/accessibility.cc
index d4505d7ef9c1d4f1d40e2b1a62fddbb86d4aecf1..c4e2b2f6f6104c5fad96fd7a781d94e58eb98f2c 100644
--- a/modules/mol/alg/src/accessibility.cc
+++ b/modules/mol/alg/src/accessibility.cc
@@ -589,19 +589,10 @@ void ASAParamFromAtomList(const ost::mol::AtomViewList& atom_list,
     z_pos.push_back(at_pos[2]);
     radii.push_back(param.GetVdWRadius(rname, aname, ele));
   } 
-}  
-
-
-void ASAParamFromAtomList(const ost::mol::AtomViewList& atom_list,
-                          std::vector<Real>& x_pos,
-                          std::vector<Real>& y_pos,
-                          std::vector<Real>& z_pos,
-                          std::vector<Real>& radii,
-                          std::vector<int>& chain_indices) {
+}
 
-  const ost::mol::alg::NACCESSParam& param = 
-  ost::mol::alg::NACCESSParam::GetInstance();
-  String rname, aname, ele;
+void ChainIndicesFromAtomList(const ost::mol::AtomViewList& atom_list,
+                              std::vector<int>& chain_indices) {
 
   // since no function to directly access a chain index, we have to do
   // that with an ugly hack... thats stupid and should be replaced...
@@ -612,21 +603,12 @@ void ASAParamFromAtomList(const ost::mol::AtomViewList& atom_list,
 
   for(ost::mol::AtomViewList::const_iterator at_it = atom_list.begin();
       at_it != atom_list.end(); ++at_it) {
-    rname = at_it->GetResidue().GetName();
-    aname = at_it->GetName();
-    ele = at_it->GetElement();
-    geom::Vec3 at_pos = at_it->GetPos();
-    x_pos.push_back(at_pos[0]);
-    y_pos.push_back(at_pos[1]);
-    z_pos.push_back(at_pos[2]);
-    radii.push_back(param.GetVdWRadius(rname, aname, ele));
     ost::mol::ChainView chain = at_it->GetResidue().GetChain();
     ost::mol::ChainViewList::iterator found_it = 
     std::find(chain_list_begin, chain_list_end, chain);
     chain_indices.push_back(static_cast<int>(found_it - chain_list_begin));
   } 
-} 
-
+}  
 
 Real SetAccessibilityProps(ost::mol::EntityView& ent,
                            ost::mol::AtomViewList& atom_list,
@@ -1024,14 +1006,16 @@ Real Accessibility(ost::mol::EntityView& ent,
 
   // extract data from ent
   ost::mol::AtomViewList atom_list = selected_ent.GetAtomList();
+  ASAParamFromAtomList(atom_list, x_pos, y_pos, z_pos, radii);
 
   if(atom_list.size() == 0) return 0.0;
 
   if(oligo_mode) {
+
+    // we additionally need the chain index for every atom
     std::vector<int> chain_indices;
     chain_indices.reserve(selected_ent.GetAtomCount());
-
-    ASAParamFromAtomList(atom_list, x_pos, y_pos, z_pos, radii, chain_indices);
+    ChainIndicesFromAtomList(atom_list, chain_indices);
 
     // do it! do it! do it!              
     std::vector<Real> asa;
@@ -1056,7 +1040,7 @@ Real Accessibility(ost::mol::EntityView& ent,
     return summed_asa;
   }
   else {
-    ASAParamFromAtomList(atom_list, x_pos, y_pos, z_pos, radii);
+    
     // do it! do it! do it!
     std::vector<Real> asa;
     CalculateASA(x_pos, y_pos, z_pos, radii, probe_radius, asa);