diff --git a/ipconfig.cc b/ipconfig.cc
index 8b45703..63e453d 100644
--- a/ipconfig.cc
+++ b/ipconfig.cc
@@ -72,9 +72,12 @@
   return adaptor_->GetRpcIdentifier();
 }
 
-string IPConfig::GetStorageIdentifier() {
+string IPConfig::GetStorageIdentifier(const string &id_suffix) {
   string id = GetRpcIdentifier();
   ControlInterface::RpcIdToStorageId(&id);
+  size_t needle = id.find('_');
+  LOG_IF(ERROR, needle == string::npos) << "No _ in storage id?!?!";
+  id.replace(id.begin() + needle + 1, id.end(), id_suffix);
   return id;
 }
 
@@ -90,8 +93,8 @@
   return false;
 }
 
-bool IPConfig::Load(StoreInterface *storage) {
-  const string id = GetStorageIdentifier();
+bool IPConfig::Load(StoreInterface *storage, const string &id_suffix) {
+  const string id = GetStorageIdentifier(id_suffix);
   if (!storage->ContainsGroup(id)) {
     LOG(WARNING) << "IPConfig is not available in the persistent store: " << id;
     return false;
@@ -101,8 +104,8 @@
   return local_type == type();
 }
 
-bool IPConfig::Save(StoreInterface *storage) {
-  const string id = GetStorageIdentifier();
+bool IPConfig::Save(StoreInterface *storage, const string &id_suffix) {
+  const string id = GetStorageIdentifier(id_suffix);
   storage->SetString(id, kStorageType, type());
   return true;
 }
