Techniques to update executing programs are needed to maintain software for which downtime is not an option. Without guidelines, dynamic update may provoke unreliable and unpredictable execution since it can be difficult to reason about overall program behavior when partial execution of the old version is followed by partial execution of the new version. Dynamic update is meaningful when the programmer is able to define when and how a new program version succeeds the old version. Interestingly, functions hinder meaningful update. This paper examines the challenges of dynamic program update for languages with functions, and sketches a programming model that supports meaningful dynamic update.