@@ -2501,10 +2501,14 @@ [stripped caseInsensitiveCompare: @"INFINITY"] == OF_ORDERED_SAME) return INFINITY; if ([stripped caseInsensitiveCompare: @"-INF"] == OF_ORDERED_SAME || [stripped caseInsensitiveCompare: @"-INFINITY"] == OF_ORDERED_SAME) return -INFINITY; + if ([stripped caseInsensitiveCompare: @"NAN"] == OF_ORDERED_SAME) + return NAN; + if ([stripped caseInsensitiveCompare: @"-NAN"] == OF_ORDERED_SAME) + return -NAN; #ifdef HAVE_STRTOF_L const char *UTF8String = self.UTF8String; #else /* @@ -2550,10 +2554,14 @@ [stripped caseInsensitiveCompare: @"INFINITY"] == OF_ORDERED_SAME) return INFINITY; if ([stripped caseInsensitiveCompare: @"-INF"] == OF_ORDERED_SAME || [stripped caseInsensitiveCompare: @"-INFINITY"] == OF_ORDERED_SAME) return -INFINITY; + if ([stripped caseInsensitiveCompare: @"NAN"] == OF_ORDERED_SAME) + return NAN; + if ([stripped caseInsensitiveCompare: @"-NAN"] == OF_ORDERED_SAME) + return -NAN; #ifdef HAVE_STRTOD_L const char *UTF8String = self.UTF8String; #else /*