diff --git a/src/base/statistics.cc b/src/base/statistics.cc
index a186f97..5e6882c 100644
--- a/src/base/statistics.cc
+++ b/src/base/statistics.cc
@@ -203,19 +203,25 @@
 void
 Info::setName(const string &name)
 {
+    setName(nullptr, name);
+}
+
+void
+Info::setName(const Group *parent, const string &name)
+{
     if (!validateStatName(name))
         panic("invalid stat name '%s'", name);
 
-    pair<NameMapType::iterator, bool> p =
-        nameMap().insert(make_pair(name, this));
+    // We only register the stat with the nameMap() if we are using
+    // old-style stats without a parent group. New-style stats should
+    // be unique since their names should correspond to a member
+    // variable.
+    if (!parent) {
+        auto p = nameMap().insert(make_pair(name, this));
 
-    Info *other = p.first->second;
-    bool result = p.second;
-
-    if (!result) {
-      // using other->name instead of just name to avoid a compiler
-      // warning.  They should be the same.
-        panic("same statistic name used twice! name=%s\n", other->name);
+        if (!p.second)
+            panic("same statistic name used twice! name=%s\n",
+                  name);
     }
 
     this->name = name;
diff --git a/src/base/statistics.hh b/src/base/statistics.hh
index f4fa123..07f2959 100644
--- a/src/base/statistics.hh
+++ b/src/base/statistics.hh
@@ -262,7 +262,7 @@
             parent->addStat(info);
 
         if (name) {
-            info->setName(name);
+            info->setName(parent, name);
             info->flags.set(display);
         }
 
diff --git a/src/base/stats/info.hh b/src/base/stats/info.hh
index 6ce7376..c03b511 100644
--- a/src/base/stats/info.hh
+++ b/src/base/stats/info.hh
@@ -36,6 +36,8 @@
 
 namespace Stats {
 
+class Group;
+
 typedef uint16_t FlagsType;
 typedef ::Flags<FlagsType> Flags;
 
@@ -97,6 +99,7 @@
 
     /** Set the name of this statistic */
     void setName(const std::string &name);
+    void setName(const Group *parent, const std::string &name);
     void setSeparator(std::string _sep) { separatorString = _sep;}
 
     /**
