diff --git a/modules/mol/base/src/impl/atom_impl.cc b/modules/mol/base/src/impl/atom_impl.cc
index f355416fa95cfdfd548a27b3cdc7ef613225dd91..71b714385d071805850c189783b8c511016a34d5 100644
--- a/modules/mol/base/src/impl/atom_impl.cc
+++ b/modules/mol/base/src/impl/atom_impl.cc
@@ -45,12 +45,16 @@ AtomImpl::AtomImpl(const EntityImplPtr& e,
   res_(r),
   name_(n),
   pos_(p),
+  occupancy_(0.0),
+  b_factor_(1.0),
+  prop_(NULL),  
+  is_hetatm_(false),  
   element_(ele),
-  is_hetatm_(false),
   prim_connector_(),
   connector_list_(),
   fragment_(),
   state_(0),
+
   index_(index)
 {
   EntityHandle ent = this->GetEntity();
@@ -206,6 +210,10 @@ void AtomImpl::UpdateFromXCS()
 }
 
 AtomImpl::~AtomImpl() {
+  if (prop_ && !prop_->is_default) {
+    delete prop_;
+    prop_=NULL;
+  }
 }
 
 EntityImplPtr AtomImpl::GetEntity() const
diff --git a/modules/mol/base/src/impl/atom_impl.hh b/modules/mol/base/src/impl/atom_impl.hh
index f13b729cba5c4ccfe00f98da5f340c05ef96dbf1..589432ca9041c600d0fba6ec850615d97e0d6cb6 100644
--- a/modules/mol/base/src/impl/atom_impl.hh
+++ b/modules/mol/base/src/impl/atom_impl.hh
@@ -227,9 +227,9 @@ private:
   geom::Vec3   tf_pos_;
   Real         occupancy_;
   Real         b_factor_;
-  String       element_;
   AtomProp*    prop_;
   bool         is_hetatm_;
+  String       element_;  
   ConnectorImplP prim_connector_;
   ConnectorImplList connector_list_;
   FragmentImplP fragment_;