In which case $M_1 \times N \cong M_2 \times N \Rightarrow M_1 \cong M_2$ is true? Usually for modules $M_1,M_2,N$
$$M_1 \times N \cong M_2 \times N \Rightarrow M_1 \cong M_2$$
is wrong. I'm just curious, but are there any cases or additional conditions where it gets true?
James B.

I recommend A Crash Course on stable range, cancellation,
substitution and exchange by T.Y. Lam, 2004, which is a pretty good guide to the phenomenon.
Update: Another question surfaced which contains a sufficient condition for cancellation. The condition is: $\hom(M_1,N)=\hom(M_2,N)=\{0\}$.
