diff -dur ../boost_1_48_0_orig/libs/mpi/src/communicator.cpp libs/mpi/src/communicator.cpp --- ../boost_1_48_0_orig/libs/mpi/src/communicator.cpp 2007-11-25 12:38:02.000000000 -0600 +++ libs/mpi/src/communicator.cpp 2012-01-23 06:58:55.000000000 -0600 @@ -63,7 +63,7 @@ MPI_Comm newcomm; BOOST_MPI_CHECK_RESULT(MPI_Comm_create, ((MPI_Comm)comm, (MPI_Group)subgroup, &newcomm)); - comm_ptr.reset(new MPI_Comm(newcomm), comm_free()); + communicator(*new MPI_Comm(newcomm), comm_take_ownership); } int communicator::size() const