3) The patch installs a new module with a different name/slot that contains jars with the same packages/classes. Now there will be two modules available that provide the same packages/classes. Which module gets used in a particular situation depends on the context. If the jsf integration somehow set up a situation where both javax.faces.api.mojarra-2.2.0-m05 and a javax.faces.api.main that contained different versions of the same classes were visible, that would probably be an issue (I haven't thought about it deeply) but that issue has nothing to do with patching. And I assume your impl was designed to deal with that.