diff --git a/src/map/battle.cpp b/src/map/battle.cpp index 9e0a856a84..22c34c8704 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -6843,7 +6843,7 @@ int64 battle_calc_return_damage(struct block_list* bl, struct block_list *src, i ssc = status_get_sc(src); if (flag & BF_SHORT) {//Bounces back part of the damage. - if ( sd && sd->bonus.short_weapon_damage_return ) { + if ( (skill_get_inf2(skill_id)&INF2_TRAP || !status_reflect) && sd && sd->bonus.short_weapon_damage_return ) { rdamage += damage * sd->bonus.short_weapon_damage_return / 100; rdamage = i64max(rdamage,1); } else if( status_reflect && sc && sc->count ) {