tr(ab) = tr(ba)? It is well known that given two Hilbert-Schmidt operators $a$ and $b$ on a Hilbert space $H$, their product is trace class and $tr(ab)=tr(ba)$. A similar result holds for $a$ bounded and $b$ trace class.
The following attractive statement, however, is false:
Non-theorem:
Let $a$ and $b$ be bounded operators on $H$. If $ab$ is trace class , then $ba$ is trace class and $tr(ab)=tr(ba)$.
The counterexample is $a=\pmatrix{0&0&0\\0&0&1\\0&0&0}\otimes 1_{\ell^2(\mathbb N)}$, $b=\pmatrix{0&1&0\\0&0&0\\0&0&0}\otimes 1_{\ell^2(\mathbb N)}$.
I'm guessing that the following is also false, but I can't find a counterexample:
Non-theorem?:
Let $a$ and $b$ be two bounded operators on $H$. If $ab$ and $ba$ are trace class, then  $tr(ab)=tr(ba)$.
 A: EDIT: Bill Johnson has pointed out a gap in my initial answer. It seems that bridging this gap is just as difficult as proving that $tr(AB)=tr(BA)$. Below I give two other proofs of this equality. The flawed proof is also reproduced at the end.
Proof 1 (alluded to by Bill in his comment to Gjergji's answer): It's well-known that $AB$ and $BA$ have the same nonzero eigenvalues (with the same multiplicities). Lidskii's trace formula then implies that $tr(AB)=tr(BA)$. QED.
Proof 2: This proof doesn't use Lidskii's formula. It's taken from

Laurie, Nordgren, Radjavi,  Rosenthal, On triangularization of algebras of operators. Reine Angew. Math. 327 (1981), 143–155.

We'll need to rely on the fact that $tr(ST)=tr(TS)$ if one of $S$ and $T$ is trace class.
Let $A=UP$ be the polar decomposition of $A$. Then $PB=U^\ast AB$ is trace class. But then one knows that $tr(UPB)=tr(PBU)$. So it suffices to prove that $tr(PBU)=tr(BUP)$. Therefore, we might as well assume that $A$ is positive. In this case we can let $P_n$ denote the spectral projection of $A$ onto $[1/n,\|A\|]$. Then $\lim_{n\to\infty} tr(P_nAB) = tr(AB)$. Now, for $T$ trace class $Q$ a projection we have $tr(QT)=tr(QTQ)=tr(TQ)$, whence $tr(P_n AB) = tr(P_n A P_n B P_n)$ since $P_n$ and $A$ commute. But the contraction $P_n B P_n$ of $B$ is trace class, for $P_n AB$ is trace class and the restriction of $P_n A$ to the range of $P_n$ is invertible. Thus $tr(P_n A P_n B P_n) = tr(P_n B P_n A) = tr(BA P_n)$ and consequently
$$ tr(AB) = \lim_{n\to\infty} tr(P_n AB) = \lim_{n\to\infty} tr(BAP_n) = tr(BA), $$
as desired.

Finally, here is the flawed proof.

Let $\{e_i\}$ be an orthonormal basis for $H$. Then
  $$ tr(AB) = \sum_i \langle ABe_i, e_i \rangle = \sum_i \langle Be_i, A^\ast e_i \rangle. $$
  But $\langle Be_i,A^\ast e_i \rangle = \sum_j \langle Be_i, e_j\rangle \overline{\langle A^\ast e_i, e_j\rangle}$, and therefore
  $$\begin{align}
tr(AB) &= \sum_i \sum_j \langle Be_i, e_j\rangle \overline{\langle A^\ast e_i, e_j\rangle} \\
&= \sum_i \sum_j \overline{\langle B^\ast e_j, e_i\rangle} \langle A e_j, e_i \rangle \\
&= \sum_j \sum_i \overline{\langle B^\ast e_j, e_i\rangle} \langle A e_j, e_i \rangle \qquad (???) \\
&= \sum_j \langle Ae_j, B^\ast e_j \rangle \\
&= \sum_j \langle BAe_j, e_j \rangle \\
&= tr(BA).
\end{align}$$

A: This follows from proposition 7.3 in "Trace-class operators and commutators" by N.J. Kalton. The theorem actually proves something stronger, that for $AB-BA$, if you arrange the eigenvalues with algebraic multiplicity so that $|\lambda_n|\geq |\lambda_{n+1}|$, then $$\sum_{n=1}^{\infty}\frac{\lambda_1+\cdots+\lambda_{n}}{n}<\infty$$
which implies trace zero, but the converse is false.
