In the transactions list, if you right click a transaction and choose "view transaction details", the "Output index" listed in the resulting window is usually wrong.

With outgoing transactions, if you have a transaction with outputs like:

    vout 0: AddrA
    vout 1: AddrB, which belongs to sender
    vout 2: AddrC
    vout 3: <change>
    vout 4: AddrD

Then the output index as reported by the GUI will be:

    tx to AddrA: 0
    tx to AddrB: <transaction not listed>
    tx to AddrC: 1
    tx to AddrD: 2
    
With received transactions, the output index always seems to be reported as 0 in transactions I've checked.

I'd guess that rather than the actual vout index, some internal wallet index is being reported.

This is 0.13.2. I don't know when the bug was introduced.
sub.type = TransactionRecord::RecvWithAddress;
                    sub.address = CBitcoinAddress(address).ToString();
                }
                else
                {
                    
                    sub.type = TransactionRecord::RecvFromOther;
                    sub.address = mapValue["from"];
                }
                if (wtx.IsCoinBase())
                {
                    
                    sub.type = TransactionRecord::Generated;
                }
                parts.append(sub);
            }
        }
    }
    else
    {
        bool involvesWatchAddress = false;
        isminetype fAllFromMe = ISMINE_SPENDABLE;
        BOOST_FOREACH(const CTxIn& txin, wtx.tx->vin)
        {
            isminetype mine = wallet->IsMine(txin);
            if(mine & ISMINE_WATCH_ONLY) involvesWatchAddress = true;
            if(fAllFromMe > mine) fAllFromMe = mine;
        }
        isminetype fAllToMe = ISMINE_SPENDABLE;
        BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout)