Statusline: Create underline under all components

Hi all,
I try to get a statusline which shows the current vim mode via an underline under all statusline components which have different background colors but the same foreground color.
My idea is to use a highlight group per vim mode which only set a different underline color and then use it at the start of the statusline so that it applies to the whole statusline
The problem is that the highlight group of the next component completely overrides this.
Concretely I do this:
I define the highlight groups, e.g.:

highlight StatusLineModeInsert guisp=red gui=underline

and then set the start of the statusline to

set statusline=%#StatusLineModeInsert# %#StatusLineFileName#...

Any help is greatly appreciated.