Some useragent strings contain more than one "Windows NT" version.
For example (this is an actual useragent string):
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; Zune 4.0; .NET CLR 1.
Note that there is present both "Windows NT 6.1" and "Windows NT 5.1".
Currently, the useragent module reports this the OS for this as "Windows XP", when in fact it should be "Windows 7".
The fix here is to order the "Windows NT" regexes so that Windows versions are searched for in order from highest version to lowest version (since only the highest "Windows NT" string should be regarded).
Some useragent strings contain more than one "Windows NT" version.
For example (this is an actual useragent string):
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; Zune 4.0; .NET CLR 1.
Note that there is present both "Windows NT 6.1" and "Windows NT 5.1".
Currently, the useragent module reports this the OS for this as "Windows XP", when in fact it should be "Windows 7".
The fix here is to order the "Windows NT" regexes so that Windows versions are searched for in order from highest version to lowest version (since only the highest "Windows NT" string should be regarded).
I'll open a pull request for this now.