Index: trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp
===================================================================
--- trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp (revision 117)
+++ trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp (revision 141)
@@ -27,6 +27,4 @@
 #define SPELL_SOUL_TRANSFER         30531 // core bug, does not support target 7
 #define SPELL_BLAZE_TARGET          30541 // core bug, does not support target 7
-#define SPELL_DEBRIS_DAMAGE			30631 // core bug, does not support target 8
-#define SPELL_DEBRIS_KNOCKDOWN      36449 // core bug, does not support target 8
 
 #define CHAMBER_CENTER_X			-15.14
@@ -41,11 +39,4 @@
     {
         Initialize();
-        // target 7, random target with certain entry spell, need core fix
-        SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_BLAZE_TARGET);
-        if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 6)
-        {
-            TempSpell->EffectImplicitTargetA[0] = 6;
-            TempSpell->EffectImplicitTargetB[0] = 0;
-        }
     }
 
Index: trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
===================================================================
--- trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp (revision 117)
+++ trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp (revision 141)
@@ -32,5 +32,5 @@
 #define SPELL_BLASTNOVA             30616  
 #define SPELL_CLEAVE                30619
-#define SPELL_QUAKE_TRIGGER         30576 // must be cast with 30561 as the proc spell
+#define SPELL_QUAKE_TRIGGER         30657 // must be cast with 30561 as the proc spell
 #define SPELL_QUAKE_KNOCKBACK       30571
 #define SPELL_BLAZE_TARGET          30541 // core bug, does not support target 7
@@ -169,4 +169,19 @@
         m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
         m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
+
+        // target 7, random target with certain entry spell, need core fix
+        SpellEntry *TempSpell;
+        TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_BLAZE_TARGET);
+        if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 6)
+        {
+            TempSpell->EffectImplicitTargetA[0] = 6;
+            TempSpell->EffectImplicitTargetB[0] = 0;
+        }
+        TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_QUAKE_TRIGGER);
+        if(TempSpell && TempSpell->EffectTriggerSpell[0] != SPELL_QUAKE_KNOCKBACK)
+        {
+            TempSpell->EffectTriggerSpell[0] = SPELL_QUAKE_KNOCKBACK;
+        }
+
         Reset();
     }
@@ -329,6 +344,5 @@
             if(!m_creature->IsNonMeleeSpellCasted(false))
             {
-                int32 i = SPELL_QUAKE_KNOCKBACK;
-                m_creature->CastCustomSpell(m_creature, SPELL_QUAKE_TRIGGER, &i, 0, 0, false);
+                m_creature->CastSpell(m_creature, SPELL_QUAKE_TRIGGER, true);
                 Quake_Timer = 50000;
             }
Index: trunk/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp
===================================================================
--- trunk/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp (revision 116)
+++ trunk/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp (revision 141)
@@ -2080,5 +2080,5 @@
     m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT);
 
-    DoCast(m_creature, SPELL_DUAL_WIELD, true);
+    m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
 }
 
Index: trunk/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
===================================================================
--- trunk/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp (revision 117)
+++ trunk/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp (revision 141)
@@ -814,259 +814,264 @@
 struct TRINITY_DLL_DECL Overlord_MorghorAI : public ScriptedAI
 {
-Overlord_MorghorAI(Creature *c) : ScriptedAI(c) {Reset();}
-
-	Unit* m_player;
-	Unit* PlayerCheck;
-	
-	uint32 SpeachTimer;
-	uint32 SpeachNum;
-	
-	uint64 PlayerGUID;
-	uint64 YazillGUID;
-	
-	bool DoingSpeach;
-	bool Failed;
-
-	Creature* Lord;
-	Creature* Yarzill;
-
-void Reset()
-{
-	if (Lord)
-	{
-		Lord->SetUInt64Value(UNIT_FIELD_TARGET, 0);
-		Lord->SetVisibility(VISIBILITY_OFF);
-		Lord->setDeathState(JUST_DIED);
-	}
-
-	if (Yarzill)
-	{
-	Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, 0);
-	}
-	
-	m_creature->Relocate(-5085.77, 577.231, 86.6719, 2.32608);
-	m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 2);
-	m_creature->SetUInt64Value(UNIT_FIELD_TARGET, 0);
-	m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
-	m_player = NULL;
-	PlayerCheck = NULL;
-	PlayerGUID = 0;
-	YazillGUID = 0;
-	Lord = NULL;
-	Yarzill = NULL;
-	DoingSpeach = false;
-	Failed = false;
-	SpeachNum = 0;
-	SpeachTimer = 0;
-}
-
-void BeginSpeach(Unit* target)
-{
-	m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 0);
-	m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
-	DoSay(OVERLORD_SAY_1,LANG_UNIVERSAL,target);
-	m_player = target;
-	PlayerCheck = NULL;
-	PlayerGUID = target->GetGUID();
-	SpeachTimer = 4200;
-	SpeachNum = 0;
-	DoingSpeach = true;
-}
-	
-void Aggro(Unit *who){}
-
-void MoveInLineOfSight(Unit *who)
-{
-	if (!who)
-	return;
-
-	if (DoingSpeach)
-	{
-		if (who->GetEntry() == 23141 && m_creature->IsWithinDistInMap(who, 15))
-		{
-			if (!YazillGUID)
-			{
-				YazillGUID = who->GetGUID();
-			}
-		}
-	}
-}
-
-void UpdateAI(const uint32 diff)
-{
-	//Speach
-	if (DoingSpeach)
-	{
-		if (SpeachTimer < diff)
-		{
-			if (YazillGUID && !Yarzill)
-			Yarzill = ((Creature*)Unit::GetUnit((*m_creature), YazillGUID));
-
-				if (!m_creature->IsWithinDistInMap(m_player, 50) && ((Player*)m_player)->GetQuestStatus(QUEST_LORD_ILLIDAN_STORMRAGE) == QUEST_STATUS_INCOMPLETE)
-				{
-				((Player*)m_player)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE);
-				SpeachNum = 30;
-				}
-
-	switch (SpeachNum)
-	{
-	// Overlord Movement
-	case 0:
-		m_creature->GetMotionMaster()->MovePoint(0, -5104.41, 595.297, 85.6838);
-		SpeachTimer = 9000; SpeachNum++; break;
-	// Overlord Yell 1
-	case 1:
-		m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_SHOUT);
-		DoYell(OVERLORD_YELL_1,LANG_UNIVERSAL,m_player);
-		SpeachTimer = 4500; SpeachNum++; break;
-	// Overlord Angle
-	case 2:
-		m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID);
-		SpeachTimer = 3200; SpeachNum++; break;
-		// Overlord Say 2
-	case 3:
-		DoSay(OVERLORD_SAY_2,LANG_UNIVERSAL,NULL);
-		SpeachTimer = 2000; SpeachNum++; break;
-	// Summon Illidan
-	case 4:
-		Lord = m_creature->SummonCreature(LORD_ILLIDAN_STORMRAGE, -5107.83, 602.584, 85.2393, 4.92598, TEMPSUMMON_CORPSE_DESPAWN, 0);
-		Lord->LoadCreaturesAddon();
-		SpeachTimer = 350; SpeachNum++; break;
-	// Illidan Cast Red Bolt
-	case 5:
-		Lord->CastSpell(Lord, SPELL_ONE, true);
-		Lord->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID());
-		m_creature->SetUInt64Value(UNIT_FIELD_TARGET, Lord->GetGUID());
-		SpeachTimer = 2000; SpeachNum++; break;
-	// Overlord Yell 2
-	case 6:
-		DoYell(OVERLORD_YELL_2,LANG_UNIVERSAL,NULL);
-		SpeachTimer = 4500; SpeachNum++; break;
-	// Overlord Kneel
-	case 7:
-		m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,8);
-		SpeachTimer = 2500; SpeachNum++; break;
-	// Overlord Say 3
-	case 8:
-		DoSay(OVERLORD_SAY_3,LANG_UNIVERSAL,NULL);
-		SpeachTimer = 6500; SpeachNum++; break;
-	// Illidan Say 1
-	case 9:
-		((Lord_IllidanAI*)Lord->AI())->DoSpeach(1);
-		SpeachTimer = 5000; SpeachNum++; break;
-	// Overlord Say 4
-	case 10:
-		DoSay(OVERLORD_SAY_4,LANG_UNIVERSAL,m_player);
-		SpeachTimer = 6000; SpeachNum++; break;
-	// Illidan Say 2
-	case 11:
-		((Lord_IllidanAI*)Lord->AI())->DoSpeach(2);
-		SpeachTimer = 5500; SpeachNum++; break;
-	// Illidan Say 3
-	case 12:
-		((Lord_IllidanAI*)Lord->AI())->DoSpeach(3);
-		SpeachTimer = 4000; SpeachNum++; break;
-	// Illidan Angle
-	case 13:
-		Lord->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID);
-		SpeachTimer = 1500; SpeachNum++; break;
-	// Illidan Say 4
-	case 14:
-		((Lord_IllidanAI*)Lord->AI())->DoSpeach(4);
-		SpeachTimer = 1500; SpeachNum++; break;
-	// Illidan Cast
-	case 15:
-		PlayerCheck = Unit::GetUnit(*Lord, PlayerGUID);
-		if (PlayerCheck)
-		{
-			Lord->CastSpell(m_player, SPELL_TWO, true);
-			m_player->RemoveAurasDueToSpell(SPELL_THREE);
-			m_player->RemoveAurasDueToSpell(SPELL_FOUR);
-			SpeachTimer = 5000; SpeachNum++;
-		}
-			else
-			{
-			((Player*)m_player)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE);
-			SpeachTimer = 100; SpeachNum = 30;
-		}
-		break;
-		// Illidan Say 5
-	case 16:
-		((Lord_IllidanAI*)Lord->AI())->DoSpeach(5);
-		SpeachTimer = 5000; SpeachNum++; break;
-	// Illidan Say 6
-	case 17:
-		((Lord_IllidanAI*)Lord->AI())->DoSpeach(6);
-		SpeachTimer = 5000; SpeachNum++; break;
-	// Illidan Say 7
-	case 18:
-		((Lord_IllidanAI*)Lord->AI())->DoSpeach(7);
-		SpeachTimer = 5000; SpeachNum++; break;
-	// Illidan Fly
-	case 19:
-		Lord->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
-		Lord->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING);
-		SpeachTimer = 500; SpeachNum++; break;
-	// Overlord Say 5
-	case 20:
-		DoSay(OVERLORD_SAY_5,LANG_UNIVERSAL,NULL);
-		SpeachTimer = 500; SpeachNum++; break;
-	// Illidan Despawn
-	case 21:
-		Lord->SetVisibility(VISIBILITY_OFF);
-		Lord->setDeathState(JUST_DIED);
-		Lord = NULL;
-		SpeachTimer = 1000; SpeachNum++; break;
-	// Overlord Stand Up
-	case 22:
-		m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
-		SpeachTimer = 2000; SpeachNum++; break;
-	// Overlord Angle
-	case 23:
-		m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID);
-		SpeachTimer = 5000; SpeachNum++; break;
-	// Overlord Say 6
-	case 24:
-		DoSay(OVERLORD_SAY_6,LANG_UNIVERSAL,NULL);
-		SpeachTimer = 2000; SpeachNum++; break;
-	// Complete Quest
-	case 25:
-		((Player*)m_player)->CompleteQuest(QUEST_LORD_ILLIDAN_STORMRAGE);
-		SpeachTimer = 6000; SpeachNum++; break;
-	// Goblin Angle
-	case 26:
-		if (Yarzill)
-		Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID);
-		SpeachTimer = 500; SpeachNum++; break;
-	// Cast Again Dragonaw Illusion
-	case 27:
-		m_player->RemoveAurasDueToSpell(SPELL_TWO);
-		m_player->RemoveAurasDueToSpell(41519);
-		m_player->CastSpell(m_player, SPELL_THREE, true);
-		m_player->CastSpell(m_player, SPELL_FOUR, true);
-		SpeachTimer = 1000; SpeachNum++; break;
-	// Goblin
-	case 28:
-	if (Yarzill)
-		((Yarzill_The_MercAI*)Yarzill->AI())->DoSpeach(m_player);
-		SpeachTimer = 5000; SpeachNum++; break;
-	// Goblin Off
-	case 29:
-		if (Yarzill)
-		Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, 0);
-		SpeachTimer = 5000; SpeachNum++; break;
-	// Overlord Go Back
-	case 30:
-		m_creature->GetMotionMaster()->MovePoint(0, -5085.77, 577.231, 86.6719);
-		SpeachTimer = 5000; SpeachNum++; break;
-	// Reset
-	case 31:
-		Reset();
-		break;
-		default: break;
-	}
-	}else SpeachTimer -= diff;
-}
-}
+    Overlord_MorghorAI(Creature *c) : ScriptedAI(c)
+    {
+        Lord = NULL;
+        Yarzill = NULL;
+        Reset();
+    }
+
+    Unit* m_player;
+    Unit* PlayerCheck;
+
+    uint32 SpeachTimer;
+    uint32 SpeachNum;
+
+    uint64 PlayerGUID;
+    uint64 YazillGUID;
+
+    bool DoingSpeach;
+    bool Failed;
+
+    Creature* Lord;
+    Creature* Yarzill;
+
+    void Reset()
+    {
+        if (Lord)
+        {
+            Lord->SetUInt64Value(UNIT_FIELD_TARGET, 0);
+            Lord->SetVisibility(VISIBILITY_OFF);
+            Lord->setDeathState(JUST_DIED);
+        }
+
+        if (Yarzill)
+        {
+            Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, 0);
+        }
+
+        m_creature->Relocate(-5085.77, 577.231, 86.6719, 2.32608);
+        m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 2);
+        m_creature->SetUInt64Value(UNIT_FIELD_TARGET, 0);
+        m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
+        m_player = NULL;
+        PlayerCheck = NULL;
+        PlayerGUID = 0;
+        YazillGUID = 0;
+        Lord = NULL;
+        Yarzill = NULL;
+        DoingSpeach = false;
+        Failed = false;
+        SpeachNum = 0;
+        SpeachTimer = 0;
+    }
+
+    void BeginSpeach(Unit* target)
+    {
+        m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 0);
+        m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
+        DoSay(OVERLORD_SAY_1,LANG_UNIVERSAL,target);
+        m_player = target;
+        PlayerCheck = NULL;
+        PlayerGUID = target->GetGUID();
+        SpeachTimer = 4200;
+        SpeachNum = 0;
+        DoingSpeach = true;
+    }
+
+    void Aggro(Unit *who){}
+
+    void MoveInLineOfSight(Unit *who)
+    {
+        if (!who)
+            return;
+
+        if (DoingSpeach)
+        {
+            if (who->GetEntry() == 23141 && m_creature->IsWithinDistInMap(who, 15))
+            {
+                if (!YazillGUID)
+                {
+                    YazillGUID = who->GetGUID();
+                }
+            }
+        }
+    }
+
+    void UpdateAI(const uint32 diff)
+    {
+        //Speach
+        if (DoingSpeach)
+        {
+            if (SpeachTimer < diff)
+            {
+                if (YazillGUID && !Yarzill)
+                    Yarzill = ((Creature*)Unit::GetUnit((*m_creature), YazillGUID));
+
+                if (!m_creature->IsWithinDistInMap(m_player, 50) && ((Player*)m_player)->GetQuestStatus(QUEST_LORD_ILLIDAN_STORMRAGE) == QUEST_STATUS_INCOMPLETE)
+                {
+                    ((Player*)m_player)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE);
+                    SpeachNum = 30;
+                }
+
+                switch (SpeachNum)
+                {
+                    // Overlord Movement
+                case 0:
+                    m_creature->GetMotionMaster()->MovePoint(0, -5104.41, 595.297, 85.6838);
+                    SpeachTimer = 9000; SpeachNum++; break;
+                    // Overlord Yell 1
+                case 1:
+                    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_SHOUT);
+                    DoYell(OVERLORD_YELL_1,LANG_UNIVERSAL,m_player);
+                    SpeachTimer = 4500; SpeachNum++; break;
+                    // Overlord Angle
+                case 2:
+                    m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID);
+                    SpeachTimer = 3200; SpeachNum++; break;
+                    // Overlord Say 2
+                case 3:
+                    DoSay(OVERLORD_SAY_2,LANG_UNIVERSAL,NULL);
+                    SpeachTimer = 2000; SpeachNum++; break;
+                    // Summon Illidan
+                case 4:
+                    Lord = m_creature->SummonCreature(LORD_ILLIDAN_STORMRAGE, -5107.83, 602.584, 85.2393, 4.92598, TEMPSUMMON_CORPSE_DESPAWN, 0);
+                    Lord->LoadCreaturesAddon();
+                    SpeachTimer = 350; SpeachNum++; break;
+                    // Illidan Cast Red Bolt
+                case 5:
+                    Lord->CastSpell(Lord, SPELL_ONE, true);
+                    Lord->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID());
+                    m_creature->SetUInt64Value(UNIT_FIELD_TARGET, Lord->GetGUID());
+                    SpeachTimer = 2000; SpeachNum++; break;
+                    // Overlord Yell 2
+                case 6:
+                    DoYell(OVERLORD_YELL_2,LANG_UNIVERSAL,NULL);
+                    SpeachTimer = 4500; SpeachNum++; break;
+                    // Overlord Kneel
+                case 7:
+                    m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,8);
+                    SpeachTimer = 2500; SpeachNum++; break;
+                    // Overlord Say 3
+                case 8:
+                    DoSay(OVERLORD_SAY_3,LANG_UNIVERSAL,NULL);
+                    SpeachTimer = 6500; SpeachNum++; break;
+                    // Illidan Say 1
+                case 9:
+                    ((Lord_IllidanAI*)Lord->AI())->DoSpeach(1);
+                    SpeachTimer = 5000; SpeachNum++; break;
+                    // Overlord Say 4
+                case 10:
+                    DoSay(OVERLORD_SAY_4,LANG_UNIVERSAL,m_player);
+                    SpeachTimer = 6000; SpeachNum++; break;
+                    // Illidan Say 2
+                case 11:
+                    ((Lord_IllidanAI*)Lord->AI())->DoSpeach(2);
+                    SpeachTimer = 5500; SpeachNum++; break;
+                    // Illidan Say 3
+                case 12:
+                    ((Lord_IllidanAI*)Lord->AI())->DoSpeach(3);
+                    SpeachTimer = 4000; SpeachNum++; break;
+                    // Illidan Angle
+                case 13:
+                    Lord->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID);
+                    SpeachTimer = 1500; SpeachNum++; break;
+                    // Illidan Say 4
+                case 14:
+                    ((Lord_IllidanAI*)Lord->AI())->DoSpeach(4);
+                    SpeachTimer = 1500; SpeachNum++; break;
+                    // Illidan Cast
+                case 15:
+                    PlayerCheck = Unit::GetUnit(*Lord, PlayerGUID);
+                    if (PlayerCheck)
+                    {
+                        Lord->CastSpell(m_player, SPELL_TWO, true);
+                        m_player->RemoveAurasDueToSpell(SPELL_THREE);
+                        m_player->RemoveAurasDueToSpell(SPELL_FOUR);
+                        SpeachTimer = 5000; SpeachNum++;
+                    }
+                    else
+                    {
+                        ((Player*)m_player)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE);
+                        SpeachTimer = 100; SpeachNum = 30;
+                    }
+                    break;
+                    // Illidan Say 5
+                case 16:
+                    ((Lord_IllidanAI*)Lord->AI())->DoSpeach(5);
+                    SpeachTimer = 5000; SpeachNum++; break;
+                    // Illidan Say 6
+                case 17:
+                    ((Lord_IllidanAI*)Lord->AI())->DoSpeach(6);
+                    SpeachTimer = 5000; SpeachNum++; break;
+                    // Illidan Say 7
+                case 18:
+                    ((Lord_IllidanAI*)Lord->AI())->DoSpeach(7);
+                    SpeachTimer = 5000; SpeachNum++; break;
+                    // Illidan Fly
+                case 19:
+                    Lord->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
+                    Lord->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING);
+                    SpeachTimer = 500; SpeachNum++; break;
+                    // Overlord Say 5
+                case 20:
+                    DoSay(OVERLORD_SAY_5,LANG_UNIVERSAL,NULL);
+                    SpeachTimer = 500; SpeachNum++; break;
+                    // Illidan Despawn
+                case 21:
+                    Lord->SetVisibility(VISIBILITY_OFF);
+                    Lord->setDeathState(JUST_DIED);
+                    Lord = NULL;
+                    SpeachTimer = 1000; SpeachNum++; break;
+                    // Overlord Stand Up
+                case 22:
+                    m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
+                    SpeachTimer = 2000; SpeachNum++; break;
+                    // Overlord Angle
+                case 23:
+                    m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID);
+                    SpeachTimer = 5000; SpeachNum++; break;
+                    // Overlord Say 6
+                case 24:
+                    DoSay(OVERLORD_SAY_6,LANG_UNIVERSAL,NULL);
+                    SpeachTimer = 2000; SpeachNum++; break;
+                    // Complete Quest
+                case 25:
+                    ((Player*)m_player)->CompleteQuest(QUEST_LORD_ILLIDAN_STORMRAGE);
+                    SpeachTimer = 6000; SpeachNum++; break;
+                    // Goblin Angle
+                case 26:
+                    if (Yarzill)
+                        Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID);
+                    SpeachTimer = 500; SpeachNum++; break;
+                    // Cast Again Dragonaw Illusion
+                case 27:
+                    m_player->RemoveAurasDueToSpell(SPELL_TWO);
+                    m_player->RemoveAurasDueToSpell(41519);
+                    m_player->CastSpell(m_player, SPELL_THREE, true);
+                    m_player->CastSpell(m_player, SPELL_FOUR, true);
+                    SpeachTimer = 1000; SpeachNum++; break;
+                    // Goblin
+                case 28:
+                    if (Yarzill)
+                        ((Yarzill_The_MercAI*)Yarzill->AI())->DoSpeach(m_player);
+                    SpeachTimer = 5000; SpeachNum++; break;
+                    // Goblin Off
+                case 29:
+                    if (Yarzill)
+                        Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, 0);
+                    SpeachTimer = 5000; SpeachNum++; break;
+                    // Overlord Go Back
+                case 30:
+                    m_creature->GetMotionMaster()->MovePoint(0, -5085.77, 577.231, 86.6719);
+                    SpeachTimer = 5000; SpeachNum++; break;
+                    // Reset
+                case 31:
+                    Reset();
+                    break;
+                default: break;
+                }
+            }else SpeachTimer -= diff;
+        }
+    }
 };
 
Index: trunk/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp
===================================================================
--- trunk/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp (revision 90)
+++ trunk/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp (revision 141)
@@ -60,4 +60,5 @@
 #define SPELL_STOMP 			45185
 #define SPELL_BERSERK 			26662
+#define SPELL_DUAL_WIELD                42459
 
 struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
@@ -76,4 +77,5 @@
         BurnTimer = 60000;
         BerserkTimer = 360000;
+        m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
     }
 
@@ -146,6 +148,6 @@
         if(BurnTimer < diff)
         {
-            Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0);
-            //DoCast(target,SPELL_BURN);
+            if(Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0))
+                target->CastSpell(target,SPELL_BURN,true);
 			BurnTimer = 60000;
         }
