- if ( strcmp(szOrig, StringAtOfs(m_pOrigTable, nStr - 1)) == 0 )
- return StringAtOfs(m_pTransTable, nStr - 1);
+ if ( strcmp(szOrig, StringAtOfs(m_pOrigTable, nStr - 1)) == 0 ) {
+ // work around for BC++ 5.5 bug: without a temp var, the optimizer
+ // breaks the code and the return value is incorrect
+ const char *tmp = StringAtOfs(m_pTransTable, nStr - 1);
+ return tmp;
+ }