}
 
 /* Iterates group WITHOUT the leader. */
-#define for_each_group_member(_evsel, _leader)                                         \
-for ((_evsel) = list_entry((_leader)->core.node.next, struct evsel, core.node); \
-     (_evsel) && (_evsel)->core.leader == (&_leader->core);                                    \
-     (_evsel) = list_entry((_evsel)->core.node.next, struct evsel, core.node))
+#define for_each_group_member_head(_evsel, _leader, _head)                             \
+for ((_evsel) = list_entry((_leader)->core.node.next, struct evsel, core.node);                \
+       (_evsel) && &(_evsel)->core.node != (_head) &&                                  \
+       (_evsel)->core.leader == &(_leader)->core;                                      \
+       (_evsel) = list_entry((_evsel)->core.node.next, struct evsel, core.node))
+
+#define for_each_group_member(_evsel, _leader)                         \
+       for_each_group_member_head(_evsel, _leader, &(_leader)->evlist->core.entries)
 
 /* Iterates group WITH the leader. */
-#define for_each_group_evsel(_evsel, _leader)                                  \
-for ((_evsel) = _leader;                                                       \
-     (_evsel) && (_evsel)->core.leader == (&_leader->core);                                    \
-     (_evsel) = list_entry((_evsel)->core.node.next, struct evsel, core.node))
+#define for_each_group_evsel_head(_evsel, _leader, _head)                              \
+for ((_evsel) = _leader;                                                               \
+       (_evsel) && &(_evsel)->core.node != (_head) &&                                  \
+       (_evsel)->core.leader == &(_leader)->core;                                      \
+       (_evsel) = list_entry((_evsel)->core.node.next, struct evsel, core.node))
+
+#define for_each_group_evsel(_evsel, _leader)                          \
+       for_each_group_evsel_head(_evsel, _leader, &(_leader)->evlist->core.entries)
 
 static inline bool evsel__has_branch_callstack(const struct evsel *evsel)
 {