diff --git a/Control/SGTools/SGTools/DataProxy.h b/Control/SGTools/SGTools/DataProxy.h
index 0f3740f56da2a6a456bce363936e7ee64e6f2cdc..0f886363220347d700b4d302f0e82ac4bab61107 100755
--- a/Control/SGTools/SGTools/DataProxy.h
+++ b/Control/SGTools/SGTools/DataProxy.h
@@ -250,7 +250,7 @@ class DataStore;
      *
      * Returns a null pointer on failure.
      */
-    std::unique_ptr<DataObject> readData() const;
+    std::unique_ptr<DataObject> readData();
 
 
   private:
@@ -368,7 +368,7 @@ class DataStore;
      * This will fail if the proxy does not refer to an object read from an
      * input file.
      */
-    std::unique_ptr<DataObject> readData (objLock_t& objLock, ErrNo* errNo) const;
+    std::unique_ptr<DataObject> readData (objLock_t& objLock, ErrNo* errNo);
 
 
     /// set DataObject
diff --git a/Control/SGTools/src/DataProxy.cxx b/Control/SGTools/src/DataProxy.cxx
index f76acf29fc30e2ae65f36e4e2369b2ad98efaf54..3c4709ac112da6e06d153853e4cc2a924a06829e 100755
--- a/Control/SGTools/src/DataProxy.cxx
+++ b/Control/SGTools/src/DataProxy.cxx
@@ -427,7 +427,7 @@ void DataProxy::setAddress(IOpaqueAddress* address)
  *
  * Returns a null pointer on failure.
  */
-std::unique_ptr<DataObject> DataProxy::readData() const
+std::unique_ptr<DataObject> DataProxy::readData()
 {
   // Public wrapper for readData().
   objLock_t objLock (m_objMutex);
@@ -446,7 +446,7 @@ std::unique_ptr<DataObject> DataProxy::readData() const
  * This will fail if the proxy does not refer to an object read from an
  * input file.
  */
-std::unique_ptr<DataObject> DataProxy::readData (objLock_t&, ErrNo* errNo) const
+std::unique_ptr<DataObject> DataProxy::readData (objLock_t&, ErrNo* errNo)
 {
   if (errNo) *errNo = ALLOK;
 
diff --git a/Control/SGTools/src/DataStore.cxx b/Control/SGTools/src/DataStore.cxx
index f68f1d3b9e604648dd4dd7c1bd2bee3abea587b9..d432711020d1708a9b4001c40cef4c95a515a807 100755
--- a/Control/SGTools/src/DataStore.cxx
+++ b/Control/SGTools/src/DataStore.cxx
@@ -447,7 +447,10 @@ DataProxy* DataStore::proxy_exact(sgkey_t sgkey) const
 DataProxy* DataStore::proxy_exact(const CLID& id,
                                   const std::string& key) const
 {
-  return proxy_exact (m_pool.stringToKey (key, id));
+  // Suppress warning here about calling to a nonconst method
+  // of m_pool.  Ok since all callers here must own the store lock.
+  IProxyDict& pool_nc ATLAS_THREAD_SAFE = m_pool;
+  return proxy_exact (pool_nc.stringToKey (key, id));
 }