diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index e6c9682..7ecb934 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -45,6 +45,11 @@
 -Autoconf error message fix for libevent detection
 -clock_gettime implementation for OSX
 
+Andrew Bosworth <bosworth@post.harvard.edu>
+- ReadWriteMutex
+- Mutex memory leak fix
+- added callback to redirect logging
+
 ----------------
 Release 20070401
 ----------------
diff --git a/lib/cpp/src/concurrency/Mutex.cpp b/lib/cpp/src/concurrency/Mutex.cpp
index 695d5dc..2674d44 100644
--- a/lib/cpp/src/concurrency/Mutex.cpp
+++ b/lib/cpp/src/concurrency/Mutex.cpp
@@ -46,6 +46,8 @@
 
 Mutex::Mutex() : impl_(new Mutex::impl()) {}
 
+Mutex::~Mutex() { delete impl_; }
+
 void Mutex::lock() const { impl_->lock(); }
 
 bool Mutex::trylock() const { return impl_->trylock(); }
@@ -91,6 +93,8 @@
 
 ReadWriteMutex::ReadWriteMutex() : impl_(new ReadWriteMutex::impl()) {}
 
+ReadWriteMutex::~ReadWriteMutex() { delete impl_; }
+
 void ReadWriteMutex::acquireRead() const { impl_->acquireRead(); }
 
 void ReadWriteMutex::acquireWrite() const { impl_->acquireWrite(); }
diff --git a/lib/cpp/src/concurrency/Mutex.h b/lib/cpp/src/concurrency/Mutex.h
index 72f7525..b19e3c5 100644
--- a/lib/cpp/src/concurrency/Mutex.h
+++ b/lib/cpp/src/concurrency/Mutex.h
@@ -18,7 +18,7 @@
 class Mutex {
  public:
   Mutex();
-  virtual ~Mutex() {}
+  virtual ~Mutex();
   virtual void lock() const;
   virtual bool trylock() const;
   virtual void unlock() const;
@@ -31,7 +31,7 @@
 class ReadWriteMutex {
 public:
   ReadWriteMutex();
-  virtual ~ReadWriteMutex() {}
+  virtual ~ReadWriteMutex();
 
   // these get the lock and block until it is done successfully
   virtual void acquireRead() const;
