diff -up ./nss/cmd/modutil/pk11.c.1056036 ./nss/cmd/modutil/pk11.c --- ./nss/cmd/modutil/pk11.c.1056036 2014-02-24 15:49:00.802754246 -0800 +++ ./nss/cmd/modutil/pk11.c 2014-02-24 15:49:00.806754285 -0800 @@ -826,6 +826,12 @@ EnableModule(char *moduleName, char *slo PK11_GetSlotName(slot), "enabled"); } } else { + if (module->internal) { + PR_fprintf(PR_STDERR, errStrings[ENABLE_FAILED_ERR], + "disable", PK11_GetSlotName(slot)); + rv = ENABLE_FAILED_ERR; + goto loser; + } if(! PK11_UserDisableSlot(slot)) { PR_fprintf(PR_STDERR, errStrings[ENABLE_FAILED_ERR], "disable", PK11_GetSlotName(slot)); diff -up ./nss/doc/modutil.xml.1056036 ./nss/doc/modutil.xml --- ./nss/doc/modutil.xml.1056036 2014-01-03 11:59:10.000000000 -0800 +++ ./nss/doc/modutil.xml 2014-02-24 15:49:00.806754285 -0800 @@ -86,7 +86,7 @@ -disable modulename - Disable all slots on the named module. Use the argument to disable a specific slot. + Disable all slots on the named module. Use the argument to disable a specific slot.The internal NSS PKCS #11 module cannot be disabled. diff -up ./nss/lib/dev/devtoken.c.1056036 ./nss/lib/dev/devtoken.c --- ./nss/lib/dev/devtoken.c.1056036 2014-02-24 15:55:16.687529925 -0800 +++ ./nss/lib/dev/devtoken.c 2014-02-24 15:56:15.720143547 -0800 @@ -1438,6 +1438,7 @@ nssToken_IsPresent ( NSSToken *token ) { + if (token == NULL) return PR_FALSE; return nssSlot_IsTokenPresent(token->slot); }