For APIs, usually the least astonishing behaviour is for API functions to carry on working in the same way from version to version, year after year. If you look at the Windows API, for example, a function called SetWidget might be supplemented by a function called SetWidgetEx in the next release. Functions are rarely changed (or even removed), as this would cause existing applications to fall on their faces. Another approach (which we sometimes use in Dialogic) is to allow different options or properties to be set in the application, which change the mode of operation of later function calls. This modal behaviour should also avoid user astonishment, since existing applications will not change the mode, and will so carry on using the well-known functionality.