solving equations with noncommutative dot



I have been manipulating with block-matrix equations
and cannot find an easy way to solve them.

Here is a trivial example of what I am trying to do:

(%i185) eqn1: A . x + B . x = C;

(%o185) 		       B . x + A . x = C
(%i186) solve(eqn1, x);


(%o186) 		      [B . x = C - A . x]

What I would prefer to see is something like:

   (B + A) . x = C

or better yet:

   x = (A + B)^^-1 . C

I guess what is needed is a rule (or a set of rules) that partition
the equation on the variable, then attempts to find terms which
involve the variable as the 2nd operand of the dot operator, and
collect the 1st operand of those terms as a sum.

Am I overlooking existing Maxima machinery for doing such things?