I think this is a bad change.  It breaks specular lighting on all platforms.

It was this...

```
color.rgb += specular * color.a;
```

The point of this code is that the `color.a` channel contains the specular strength.  It is scaling the specular effect by the strength then adding it into the final color.

This...

```
color.rgb += specular;
color.rgb *= color.a;
```
... is very different.  Adding the full specular amount into the color then scaling everything by the specular strength.

Plus this code is cut and paste from Microsoft's shaders...  it is right.  I think we should look more carefully at the original issue you had and see if there is a better fix.