diff --git a/utils/misc/src/main/java/org/onlab/util/Tools.java b/utils/misc/src/main/java/org/onlab/util/Tools.java
index e366172..8b045f1 100644
--- a/utils/misc/src/main/java/org/onlab/util/Tools.java
+++ b/utils/misc/src/main/java/org/onlab/util/Tools.java
@@ -43,6 +43,9 @@
 import static org.onlab.util.GroupedThreadFactory.groupedThreadFactory;
 import static org.slf4j.LoggerFactory.getLogger;
 
+/**
+ * Miscellaneous utility methods.
+ */
 public abstract class Tools {
 
     private Tools() {
@@ -68,7 +71,9 @@
      * Returns a thread factory that produces threads named according to the
      * supplied name pattern and from the specified thread-group. The thread
      * group name is expected to be specified in slash-delimited format, e.g.
-     * {@code onos/intent}.
+     * {@code onos/intent}. The thread names will be produced by converting
+     * the thread group name into dash-delimited format and pre-pended to the
+     * specified pattern.
      *
      * @param groupName group name in slash-delimited format to indicate hierarchy
      * @param pattern   name pattern
@@ -77,7 +82,7 @@
     public static ThreadFactory groupedThreads(String groupName, String pattern) {
         return new ThreadFactoryBuilder()
                 .setThreadFactory(groupedThreadFactory(groupName))
-                .setNameFormat(pattern)
+                .setNameFormat(groupName.replace(GroupedThreadFactory.DELIMITER, "-") + "-" + pattern)
                         // FIXME remove UncaughtExceptionHandler before release
                 .setUncaughtExceptionHandler((t, e) -> log.error("Uncaught exception on {}", t.getName(), e)).build();
     }
diff --git a/utils/misc/src/test/java/org/onlab/util/ToolsTest.java b/utils/misc/src/test/java/org/onlab/util/ToolsTest.java
index 5c361bd..569139a 100644
--- a/utils/misc/src/test/java/org/onlab/util/ToolsTest.java
+++ b/utils/misc/src/test/java/org/onlab/util/ToolsTest.java
@@ -55,10 +55,10 @@
 
     @Test
     public  void groupedThreads() {
-        ThreadFactory f = Tools.groupedThreads("foo/bar", "foo-%d");
+        ThreadFactory f = Tools.groupedThreads("foo/bar-me", "foo-%d");
         Thread t = f.newThread(() -> TestTools.print("yo"));
-        assertTrue("wrong pattern", t.getName().startsWith("foo-"));
-        assertTrue("wrong group", t.getThreadGroup().getName().equals("foo/bar"));
+        assertTrue("wrong pattern", t.getName().startsWith("foo-bar-me-foo-"));
+        assertTrue("wrong group", t.getThreadGroup().getName().equals("foo/bar-me"));
     }
 
 }
