Index: kernel/include/IMP/Model.h
===================================================================
--- kernel/include/IMP/Model.h	(revision 374)
+++ kernel/include/IMP/Model.h	(working copy)
@@ -81,7 +81,7 @@
 
 protected:
   //! all of the data associated with the particles
-  ModelData* model_data_;
+  std::auto_ptr<ModelData> model_data_;
 
   //! trajectory file path
   std::string trajectory_path_;
Index: kernel/include/IMP/ModelData.h
===================================================================
--- kernel/include/IMP/ModelData.h	(revision 374)
+++ kernel/include/IMP/ModelData.h	(working copy)
@@ -36,6 +36,7 @@
   friend class Particle;
   friend class OptFloatIndexIterator;
   friend class DerivativeAccumulator;
+  friend class std::auto_ptr<ModelData>;
 
   // variables
   class FloatData
Index: kernel/src/Model.cpp
===================================================================
--- kernel/src/Model.cpp	(revision 374)
+++ kernel/src/Model.cpp	(working copy)
@@ -18,9 +18,8 @@
 {
 
 //! Constructor
-Model::Model()
+  Model::Model(): model_data_(new ModelData())
 {
-  model_data_ = new ModelData();
   frame_num_ = 0;
   trajectory_on_ = false;
 }
@@ -37,7 +36,7 @@
  */
 ModelData* Model::get_model_data() const
 {
-  return model_data_;
+  return model_data_.get();
 }
 
 IMP_CONTAINER_IMPL(Model, Restraint, restraint, RestraintIndex,