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.
{
    QList<TransactionRecord> parts;
    int64_t nTime = wtx.GetTxTime();
    CAmount nCredit = wtx.GetCredit(ISMINE_ALL);
    CAmount nDebit = wtx.GetDebit(ISMINE_ALL);
    CAmount nNet = nCredit - nDebit;
    uint256 hash = wtx.GetHash();
    std::map<std::string, std::string> mapValue = wtx.mapValue;
    if (nNet > 0 || wtx.IsCoinBase())
    {
        
        
        
        BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout)
        {
            isminetype mine = wallet->IsMine(txout);
            if(mine)
            {
                TransactionRecord sub(hash, nTime);
                CTxDestination address;
                sub.idx = parts.size(); 
                sub.credit = txout.nValue;
                sub.involvesWatchAddress = mine & ISMINE_WATCH_ONLY;
                if (ExtractDestination(txout.scriptPubKey, address) && IsMine(*wallet, address))
                {