battle_attr_fix (map/battle.c)
struct map_session_data *sd;
..
//after damage calc
..
if( battle_getcurrentskill(src) == CR_ACIDDEMONSTRATION && def_type == ELE_GHOST )
{
damage += damage * ( sd->right_weapon.addele[ELE_GHOST ] / 100 );
}
quick and dirty solution, havent tested yet, but the idea is already there