Possible Duplicate:
Why does MatrixForm affect calculations?
I am doing a matrix multiplication, but not getting the desired output. I am doing the matrix multiplication of $A^{-1}B$ from the following $Ax=B$. Multiplying a square matrix times a column vector, I would expect to get a column vector as so: $4\times 4 \cdot 4\times 1=4\times 1$ vector. When I do this, the kernel just spits back what $A^{-1}$ is and what $B$ is. The following code is what I did.
a = {{1, 0, 1, 0}, {2, 1, 1, 1}, {1, 2, 1, 0}, {0, 1, 1, 1}};
inv = Inverse[a];
b = MatrixForm@{{0}, {0}, {0}, {1}};
soln = inv.b

What seems to be the problem or slight piece that I may be missing here for full simplification?