A method for dynamically augmenting printer drivers, by providing a GUI for selecting plug-in modules, and dynamically adding the selected plug-in modules. Addition and deletion of plug-in modules do not require uninstallation and reinstallation of the currently installed printer driver. Plug-in modules implement optional or model-specific functionalities, including feature sets, Page Description Languages (PDLs), and Renders. Settings for plug-in modules are stored in heap-allocated private devmode structures, which may be deallocated when plug-in modules are removed. Methods include copying DLL files to a printer system folder, checking compatibility of the plug-in DLL files, adding registry entries, plug-in module installing itself, adding GUI tabs, and downloading plug-in modules stored at a remote storage over the network. In an embodiment, registry entries are checked for any plug-in modules, and the corresponding DLL files are copied from a server to a client.