Redefiniendo la línea de contenido con hiperreferencia cargada

Redefiniendo la línea de contenido con hiperreferencia cargada

El siguiente código de látex no se compila en la segunda ronda de pdflatex. Si elimino el paquete Hyperref, se compila bien; sin embargo, si está allí, no se compila y se queja dando este error.

(./master.out) (./master.out) (./master.toc) [1{/var/lib/texmf/fonts/map/pdftex /updmap/pdftex.map}] [2] (./ master.lot ! El argumento de \contentsline tiene un }. \par l.3 \contentsline {table}{\numberline {1.1}{\ignorespaces El título de mi tabla...

¿Cómo puedo solucionarlo?

\documentclass[twoside,a4paper]{memoir}
\usepackage{hyperref}

\renewcommand\mempostaddchaptertotochook{%
  \addchaptertoloft{lof}%
  \addchaptertoloft{lot}%
}
\def\addchaptertoloft#1{% 
   \addtocontents{#1}{% 
     \protect\xcontentsline{chapter} 
      {\chaptername\ \thechapter\protect\nopagebreak\protect\vspace{1ex}}{}}}
\makeatletter
\def\xcontentsline#1#2#3{\@ifnextchar\contentsline 
  {\contentsline{#1}{#2}{#3}}{}} 
\makeatother


\begin{document}

\cleardoublepage
\tableofcontents
\cleardoublepage
\listoftables
\cleardoublepage

\chapter{Chapter}

\begin{table}
  \centering
  \caption{My table's caption}
    \begin{tabular}{l c c} 
        \hline
        column 1 & column 2 & column 3 \\
        \hline
        r1 & r2 & r3 \\
        r1 & r2 & r3 \\
        r1 & r2 & r3 \\
        r1 & r2 & r3 \\
        \hline
    \end{tabular}
\end{table}

\end{document}

información relacionada