Commutation relations trouble (basic)

I am reading the first chapter of Sakurai's Modern QM and from pages 30 and 32 respectively, I understand that

(i) If [A,B]=0, then they share the same set of eigenstates.

(ii) Conversely, if two operators have the same eigenstates, then they commute.

But we know that [itex][L^2,L_z]=0[/itex], [itex][L^2,L_x]=0[/itex] and [itex][L_z,L_x]\neq 0[/itex].

From the first equality, and (i) I gather that L² and L_z have the same eigenkets. From (i) and the second equality, I get that L² and L_x have the same eigenkets. So L_z and L_x have the same eigenkets. Hence, by (ii), they commute, which contradicts [itex][L_z,L_x]\neq 0[/itex].

Consider the states [tex] | \ell, \,m_z \rangle [/tex] which are the usual simultaneous eigenstates of [tex] L^2 [/tex] and [tex] L_z [/tex]. To understand your problem, imagine taking superpositions of these states with the same [tex] \ell [/tex] but different [tex] m_z [/tex] values. For example, the state [tex] | 1/2,\, 1/2 \rangle + | 1/2, \,-1/2 \rangle [/tex] is such a superpostion; an equal superposition of spin up and spin down. This state is not an eigenstate of [tex] L_z [/tex] (two different [tex] m_z [/tex] values), but it is still an eigenstate of [tex] L^2 [/tex]. Thus while it is certainly possible to choose simultaneous eigenstates of [tex] L_z [/tex] and [tex] L^2 [/tex], it is definitely not true that every eigenstate of [tex] L^2 [/tex] is an eigenstate of [tex] L_z [/tex]. In fact, the state I just constructed is nothing other than the spin up eigenstate of [tex] L_x [/tex]. That is, it is a simultaneous eigenstate of [tex] L^2 [/tex] and [tex] L_x [/tex] rather than [tex] L^2 [/tex] and [tex] L_z [/tex]. So you see, among all the states with the same value of [tex] \ell [/tex], there is a nontrivial freedom to construct states that are eigenstates of [tex] L_z [/tex] or [tex] L_x [/tex]. Finally, the fact that [tex] L_z [/tex] and [tex] L_x [/tex] don't commute simple means that you won't be able find to find linear combinations which are eigenstates of [tex] L_z [/tex] and [tex] L_x [/tex].

Ah, so I misinterpreted (i). Would a true statement be that if [A,B]=0, then the eigenkets of either one of A or B are eigenkets for the other.

The crucial point is that the above statement is definitely not true; eigenstates of A are in no way guaranteed to be eigenstates of B. The guarantee you do have is much weaker. What it says is that if you make a list of linearly independent eigenstates of A with the same eigenvalue, then you can always make from this list states which are also eigenstates of B (provided A and B commute). Again, it does not mean that every state on your list is automatically an eigenstate of B, only that you can find some combinations which are.