cover in r.combine

Has anyone update r.combine so that COVER option
preserve the top layer cats?
The current version lumps all cats from the top
layer into one in the result layer. Correct me
if I'm wrong. It seems not hard to modify
the program, theoretically speaking.

For example,
top COVER bottom = result
1 2 3 0 2 5 0 0 6 7 8 0
0 1 0 0 3 5 4 2 3 6 4 2
0 0 0 0 2 3 4 5 2 3 4 5
0 2 0 1 0 2 3 4 0 7 3 6

--Xin