1. A method of extending the functionality of a computer software application program at run time, comprising: determining, by an extension point within said application program, that a filter aware extension registry should be used when finding extension modules attached to said extension point; obtaining, by said extension point, said filter aware extension registry; calling, by said filter aware extension registry, a filter extension; determining, by said filter extension, a set of extension modules attached to said extension point responsive to at least one current context attribute, wherein said set of extension modules attached to said extension point is a subset of all extension modules attached to said extension point; and passing said set of extension modules attached to said extension point to said extension point.