Index: /trunk/src/game/Unit.cpp
===================================================================
--- /trunk/src/game/Unit.cpp (revision 239)
+++ /trunk/src/game/Unit.cpp (revision 248)
@@ -3783,5 +3783,4 @@
         {
             m_ccAuras.push_back(Aur);
-            RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_CC);
         }
     }
Index: /trunk/src/game/Spell.cpp
===================================================================
--- /trunk/src/game/Spell.cpp (revision 239)
+++ /trunk/src/game/Spell.cpp (revision 248)
@@ -997,4 +997,7 @@
 
             unit->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_HITBYSPELL);
+            //TODO: find a better way to judge CC auras
+            if(m_spellInfo->Attributes & SPELL_ATTR_BREAKABLE_BY_DAMAGE)
+                unit->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_CC);
         }
         else
