If[ TrueQ[!FreeQ[tmp,optHead]], in line 102 -> If[ TrueQ[!FreeQ[ex,optHead]],
tmp = Collect2[ex,GLI,Factoring->optFactoring,TimeConstrained->optTimeConstrained, FCParallelize->optFCParallelize]; in line 108 -> tmp = Collect2[ex,GLI, Head -> {Identity,optHead}, Factoring->optFactoring,TimeConstrained->optTimeConstrained, FCParallelize->optFCParallelize];