diff --git a/modules/mol/base/pymod/export_editors.cc b/modules/mol/base/pymod/export_editors.cc
index 6dfe5e837402828563dc96a96020c06c0d2d6a37..7ac51a75e0fe8459604c7fa90b23eafaeb26c45f 100644
--- a/modules/mol/base/pymod/export_editors.cc
+++ b/modules/mol/base/pymod/export_editors.cc
@@ -22,7 +22,10 @@
 using namespace boost::python;
 
 #include <ost/mol/mol.hh>
-
+#include <ost/mol/impl/entity_impl.hh>
+#include <ost/mol/impl/chain_impl.hh>
+#include <ost/mol/impl/residue_impl.hh>
+#include <ost/mol/impl/atom_impl.hh>
 using namespace ost;
 using namespace ost::mol;
 
@@ -175,9 +178,18 @@ void set_pos(XCSEditor& e, object o1, object o2, bool trans)
   }
 
   std::map<unsigned long,AtomHandle> amap;
-  EntityHandle eh=e.GetEntity();
-  for(AtomHandleIter ait=eh.AtomsBegin(), aite=eh.AtomsEnd(); ait!=aite; ++ait) {
-    amap[(*ait).GetIndex()]=*ait;
+  impl::EntityImplPtr ei=e.GetEntity().Impl();
+  for(impl::ChainImplList::iterator cit=ei->GetChainList().begin();
+      cit!=ei->GetChainList().end();++cit) {
+    for (impl::ResidueImplList::iterator rit = (*cit)->GetResidueList().begin(),
+         ret = (*cit)->GetResidueList().end(); rit != ret; ++rit) {
+           
+      for (impl::AtomImplList::iterator ait = (*rit)->GetAtomList().begin(), 
+           aet = (*rit)->GetAtomList().end(); ait != aet; ++ait) {
+
+        amap[(*ait)->GetIndex()]=*ait;
+      }
+    }
   }
 
   AtomHandleList alist;
diff --git a/modules/mol/base/pymod/export_entity.cc b/modules/mol/base/pymod/export_entity.cc
index 6d56e7db13fb7e7e32baed55a474636d28b24d7b..538921e2b7f1c7d8fc4c752584c8b665f0d0050c 100644
--- a/modules/mol/base/pymod/export_entity.cc
+++ b/modules/mol/base/pymod/export_entity.cc
@@ -21,6 +21,11 @@
 using namespace boost::python;
 
 #include <ost/mol/entity_view.hh>
+#include <ost/mol/impl/entity_impl.hh>
+#include <ost/mol/impl/chain_impl.hh>
+#include <ost/mol/impl/residue_impl.hh>
+#include <ost/mol/impl/atom_impl.hh>
+
 #include <ost/mol/query.hh>
 #include <ost/mol/mol.hh>
 #include "bounds.hh"
@@ -85,12 +90,20 @@ PyObject* get_pos2(EntityHandle& entity, bool id_sorted)
       nad[2]=static_cast<npy_float>(pos[2]);
     }
   } else {
-    for(AtomHandleIter it=entity.AtomsBegin();it!=entity.AtomsEnd();++it,nad+=3) {
-      geom::Vec3 pos=(*it).GetPos();
-      nad[0]=static_cast<npy_float>(pos[0]);
-      nad[1]=static_cast<npy_float>(pos[1]);
-      nad[2]=static_cast<npy_float>(pos[2]);
-    }
+    impl::EntityImplPtr ei=entity.Impl();
+    for(impl::ChainImplList::iterator cit=ei->GetChainList().begin();
+        cit!=ei->GetChainList().end();++cit) {
+      for (impl::ResidueImplList::iterator rit = (*cit)->GetResidueList().begin(),
+          ret = (*cit)->GetResidueList().end(); rit != ret; ++rit) {
+            
+        for (impl::AtomImplList::iterator ait = (*rit)->GetAtomList().begin(), 
+            aet = (*rit)->GetAtomList().end(); ait != aet; ++ait, nad+=3) {
+
+          geom::Vec3 pos=(*ait)->TransformedPos();
+          nad[0]=static_cast<npy_float>(pos[0]);
+          nad[1]=static_cast<npy_float>(pos[1]);
+          nad[2]=static_cast<npy_float>(pos[2]);
+    }}}
   }
   return na;
 }