map->groups = mg;
 }
 
-static int maps__fixup_overlappings(struct maps *maps, struct map *map, FILE *fp)
+int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map, FILE *fp)
 {
+       struct maps *maps = &mg->maps;
        struct rb_root *root;
        struct rb_node *next, *first;
        int err = 0;
                        }
 
                        before->end = map->start;
-                       __map_groups__insert(pos->groups, before);
+                       __map_groups__insert(mg, before);
                        if (verbose >= 2 && !use_browser)
                                map__fprintf(before, fp);
                        map__put(before);
                        after->start = map->end;
                        after->pgoff += map->end - pos->start;
                        assert(pos->map_ip(pos, map->end) == after->map_ip(after, map->end));
-                       __map_groups__insert(pos->groups, after);
+                       __map_groups__insert(mg, after);
                        if (verbose >= 2 && !use_browser)
                                map__fprintf(after, fp);
                        map__put(after);
        return err;
 }
 
-int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map,
-                                  FILE *fp)
-{
-       return maps__fixup_overlappings(&mg->maps, map, fp);
-}
-
 /*
  * XXX This should not really _copy_ te maps, but refcount them.
  */