# hash-tag in \href causes error

I'm creating a beamer presentation. I want to put a link to a source which has a hash-tag in it (#). When I try to compile this I get an error:

! Illegal parameter number in definition of \test.
}
l.91 \end{itemize}
% ends low level
? x


This is the line I'm using:

\href{http://highered.mcgrew-hill.com/classware/ala.do?isbn=0072956208&alaid=ala_1500202&showSelfStudyTree=true#}{source}


Is there a way around this?

-
This \href line is ok. Find out which piece of code actually causes the error and post that here. – Stefan Kottwitz Feb 16 '12 at 9:43
The frame should be marked as fragile: \begin{frame}[fragile]. On the other hand, a hash symbol at the end of a link appears to be ignored. – egreg Feb 16 '12 at 11:17
@egreg: That is hyperref's rule, for good reason. \href@ $1->\expandafter \href@split$1##\$1<-http://example.com/ala.do?foo=bar&showSelfStudyTree=true# {\expandafter} \href@split$1#$2#$3\\$4->\hyper@@link {$1}{$2}{$4}\endgroup $1<-http://example.com/ala.do?foo=bar&showSelfStudyTree=true$2<- $3<-#$4<-source – Ahmed Musa Feb 16 '12 at 19:04

Be careful to escape the hash character #:
\href{http://example.com/ala.do?foo=bar&showSelfStudyTree=true\#}{source} % # truncated

\href{http://example.com/ala.do?showSelfStudyTree=true\#&foo=bar}{source} % # perserved