http://www.bay12games.com/dwarves/mantisbt/view.php?id=808

for (i = 0; i < num_items; i++)
{
    ridx = reagent_idx[i];
    sz = reagent_quantity[ridx]; // used quantity
    if (sz <= 0) continue;
    reag = reagent[ridx];
    if (reag->flags.PRESERVE_REAGENT) continue;
    rsz = items[i]->getTotalDimension();
<<<<<<<<
    if (reag->flags3.ANY_RAW_MATERIAL)
        rsz *= BASE_SIZE(items[i]->getType());
    if (items[i]->subtractDimension(rsz))
========
    /* Not in patch, but necessary for full correctness:
    if (reag->flags3.ANY_RAW_MATERIAL)
        rsz /= BASE_SIZE(items[i]->getType());
    */
    if (reag->flags3.ANY_RAW_MATERIAL)
        sz *= BASE_SIZE(items[i]->getType());
    if (items[i]->subtractDimension(sz))
>>>>>>>>
        destroy_item(items[i]);
    reagent_quantity[ridx] -= rsz
    if (reagent_quantity[ridx] < 0)
        reagent_quantity[ridx] = 0;
}

You can use this script to apply the generated patch below:
http://stalkr.net/files/ida/idadif.py

----8<----
This difference file is created by The Interactive Disassembler

Dwarf_Fortress
0087F7EF: F8 D8
0087F86F: F8 D8
0087F9AD: C7 C3
0087F9ED: C7 C3