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.
{
            isminetype mine = wallet->IsMine(txout);
            if(mine & ISMINE_WATCH_ONLY) involvesWatchAddress = true;
            if(fAllToMe > mine) fAllToMe = mine;
        }
        if (fAllFromMe && fAllToMe)
        {
            
            CAmount nChange = wtx.GetChange();
            parts.append(TransactionRecord(hash, nTime, TransactionRecord::SendToSelf, "",
                            -(nDebit - nChange), nCredit - nChange));
            parts.last().involvesWatchAddress = involvesWatchAddress;   
        }
        else if (fAllFromMe)
        {
            
            
            
            CAmount nTxFee = nDebit - wtx.tx->GetValueOut();
            for (unsigned int nOut = 0; nOut < wtx.tx->vout.size(); nOut++)
            {
                const CTxOut& txout = wtx.tx->vout[nOut];
                TransactionRecord sub(hash, nTime);
                sub.idx = parts.size();
                sub.involvesWatchAddress = involvesWatchAddress;
                if(wallet->IsMine(txout))
                {