Argh, found the error.. Inside wallet.cpp >>> bool CWallet::CreateTransaction <<< There is the translation of the output value: const mpq qValue = RoundAbsolute(s.second, ROUND_AWAY_FROM_ZERO, 0); const mpz zValue = nValue.get_num() / qValue.get_den(); CTxOut txout(mpz_to_i64(zValue), s.first); Problem is: nValue is the hole amount which is then added to every txout. The right one should be qValue: const mpz zValue = qValue.get_num() / qValue.get_den(); Very small one, but also easy to overlook.. Commit can also be found here: https://github.com/WorldLeadCur