in=down modifier breaks \draw command when coordinate is returned by macro

Another Minimal Non-Working Example...

\documentclass{article}
\usepackage{tikz}
\begin{document}
\newlength\mylength
\setlength\mylength{20pt}
\newcommand*\mypoint{\mylength,20pt}
\begin{tikzpicture}
\draw (0pt,0pt) to [in=down] (\mypoint);
\end{tikzpicture}
\end{document}


Everything is fine without the [in=down] modifier. Assistance welcome! I need a fix that retains the general structure; this is a simplification of a real situation in which I have hundreds of these to [in=down] (\mypoint) line segments in my draw command, where \mypoint is a different macro in each case, and it's not feasible to create a new node for every call of the macro.

-

Since you stored the value of 20pt as a length, you should access its value using \the\mylength. Redefining your macro as \newcommand*\mypoint{\the\mylength,20pt} will work.
See What is the difference between \def and \newlength? for more details on using length macros.
Thanks! Is it not a bit bizarre that this error only appeared when the [in=down] parameter was invoked, though? –  Jamie Vicary Nov 6 '11 at 23:18
Yeah, it seems that the curveto handler which replaces the lineto handler if you use something like in=down or bend right handles its coordinates differently. –  Jake Nov 6 '11 at 23:23