This bug depends on 148257 having been fixed, i.e. when we have stretches of text which are explicitly/definitely marked as being in a certain language. When this is the case, we should qualify the application of the Unicode Bidirectional Algorithm when it comes to neutral characters like '-', '?', western-arabic digits etc.: When a directionality-character is marked as being in a language in which it does not interrupt direction runs of text in that language, e.g. '-' for English where everything is LTR, we should treat is as a strongly-directional character with the directionality of that language. Thus, for example, if I write "-fax" in an RTL paragraph, the visual layout will be: fax- two runs, a 1-char RTL run and a 3-char LTR run. But if we mark this text as being in English, we should see: -fax a single LTR run despite - being a neutral character in general - because we know that the minus is part of a sequence of characters in English. Caveat: Some languages may not have a single directionality, like Japanese; in which case we should either treat the character as neutral or apply some other logic. ------------------------------ Alternative, weaker option: Instead of treating the character as strongly-directional, "bias" the neutral character direction so that it takes its language's direction if the stretch of neutral chars has a stretch of chars in its language either before or after it.