Why does every symplectic matrix $M\in{\rm Sp}(2n,{\Bbb R})$ admit a symplectic eigenbasis? I tripped over the following assertion.

Let $M \in \mathrm{Sp}(2n)$ be a symplectic real matrix which is diagonalizable. Then we can write it down as $M = S^{-1}D\ S$ where $S \in \mathrm{Sp}(2n)$ and $D$ is diagonal.

I don't see why I can diagonalize $M$ by a symplectic matrix, I haven't found any reference of this statement somewhere else, Does anyone knows a reference or a proof about this statement? 
I tried to prove and the only thing I could get was that $\lambda$ and $\lambda^{-1}$ are eigenvalues of $M$ and probably this could get to the symplecticity of the eigenvectos of $S$.
 A: Here is an overview of a direct and elementary argument proving the assertion.
General facts: 


*

*If a linear map $L : \mathbb{R}^n \to \mathbb{R}^n$ is diagonalizable over $\mathbb{R}$ if and only if there is a basis of $\mathbb{R^n}$ made of eigenvectors of $L$;

*In any such 'eigenbasis', $L$ is read as a diagonal matrix $D$ constituted of the eigenvalues of $L$;

*If $M$ is the matrix which represents $L$ in a given basis, and if $B$ is the matrix constituted of the readings in the given basis of the vectors in an eigenbasis, then $M = BDB^{-1}$.
Hence our goal is to prove that given $M \in \mathrm{Sp}(2n, \mathbb{R})$ diagonalizable over $\mathbb{R}$, we can find a symplectic eigenbasis $B$ for $\mathbb{R}^{2n}$.
Observation 1: Let $M \in \mathrm{Sp}(2n, \mathbb{R})$. If $\lambda$ is an eigenvalue of $M$, then so is $\lambda^{-1}$. Hint: Matrices $M$ and $M^T$ always have the same spectrum as they have the same characteristic polynomial. If $M$ is symplectic and if $J = \left( \begin{array}{cc} 0 & -I \\ I & 0 \end{array} \right)$, then $M^{-1} = J^{-1}M^T J$, so $M^{-1}$ and $M^T$ have the same spectrum.
Observation 2: Let $M \in \mathrm{Sp}(2n, \mathbb{R})$ be a diagonalizable matrix over $\mathbb{R}$. Consider two (not necessarily different) eigenvalues $\lambda$ and $\mu$ of $M$ such that $\lambda \mu \neq 1$. Consider eigenvectors $v$ and $w$ of $M$ associated to the eigenvalues $\lambda$ and $\mu$ respectively. If $\omega$ denotes the standard symplectic form on $\mathbb{R}^{2n}$, then we have $\omega(v, w) = 0$. Hint: compute $\omega(Mv,Mw)$ in two different ways.
Claim 1: Let $M \in \mathrm{Sp}(2n, \mathbb{R})$ be a diagonalizable matrix over $\mathbb{R}$. If $\lambda \neq \pm 1$ is an eigenvalue of $M$, then the sum of eigenspaces $E_{\lambda} \oplus E_{\lambda^{-1}}$ is a symplectic subspace of $(\mathbb{R}^{2n}, \omega)$.
Observation 3: Let $M \in \mathrm{Sp}(2n, \mathbb{R})$ be a diagonalizable matrix over $\mathbb{R}$. If $-1$ is an eigenvalue of $M$, then its multiplicity is even. If $1$ is an eigenvalue of $M$, then its multiplicity is even. Hint: $M$ has an even number of eigenvalues (counting multiplicities). Claim 1  implies that there is(counting multiplicities) an even number of eigenvalues different from $\pm 1$, hence an even number of eigenvalues equal to $\pm 1$. But $\mathrm{det}(M) = 1$.
Claim 2: Let $M \in \mathrm{Sp}(2n, \mathbb{R})$ be a diagonalizable matrix over $\mathbb{R}$. If $\lambda = \pm 1$ is an eigenvalue of $M$, then the eigenspace $E_{\lambda}$ is a symplectic subspace of $(\mathbb{R}^{2n}, \omega)$.
Assertion/corollary: Let $M \in \mathrm{Sp}(2n, \mathbb{R})$ be a diagonalizable matrix over $\mathbb{R}$. Then $\mathbb{R}^{2n}$ admits a symplectic basis constituted of eigenvectors of $M$. In other words, given the standard symplectic basis, the matrix $B$ constituted of the readings of the eigenvectors of $M$ in that standard basis is a symplectic matrix.
