diff --git a/src/map/skill.c b/src/map/skill.c
index 763af64..666b363 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3713,7 +3713,9 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
short x, y, i = 2; // Move 2 cells for Issen(from target)
struct block_list *mbl = bl;
short dir = 0;
-
+ int speed;
+ struct unit_data *ud = unit->bl2ud(src);
+
skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
if( skill_id == MO_EXTREMITYFIST ) {
@@ -3741,9 +3743,21 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
if( dir > 2 && dir < 6 ) y = -i;
else if( dir == 7 || dir < 2 ) y = i;
else y = 0;
- if( (mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground) ) // only NJ_ISSEN don't have slide effect in GVG
- && unit->movepos(src, mbl->x+x, mbl->y+y, 1, 1)
- ) {
+
+ if (skill_id == MO_EXTREMITYFIST && unit->walktoxy(src, mbl->x + x, mbl->y + y, 2) && ud) {
+ //Increase can't walk delay to not alter your walk path
+ ud->canmove_tick = tick;
+ speed = status->get_speed(src);
+ for (i = 0; i < ud->walkpath.path_len; i ++)
+ {
+ if(ud->walkpath.path[i]&1)
+ ud->canmove_tick += 7*speed/5;
+ else
+ ud->canmove_tick += speed;
+ }
+ } else if ((mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground)) // only NJ_ISSEN don't have slide effect in GVG
+ && unit->movepos(src, mbl->x+x, mbl->y+y, 1, 1))
+ {
clif->slide(src, src->x, src->y);
clif->fixpos(src);
clif->spiritball(src);