diff --git a/apps/openmw/mwclass/npc.cpp b/apps/openmw/mwclass/npc.cpp
index dc219f373..86f0fbc3b 100644
--- a/apps/openmw/mwclass/npc.cpp
+++ b/apps/openmw/mwclass/npc.cpp
@@ -468,6 +468,10 @@ namespace MWClass
         if(ptr.getRefData().getHandle() == "player")
             MWBase::Environment::get().getWindowManager()->setEnemy(victim);
 
+        // Attacking peaceful NPCs is a crime
+        if (victim.getClass().isNpc() && victim.getClass().getCreatureStats(victim).getAiSetting(MWMechanics::CreatureStats::AI_Fight).getModified() <= 30)
+            MWBase::Environment::get().getMechanicsManager()->commitCrime(ptr, victim, MWBase::MechanicsManager::OT_Assault);
+
         int weapskill = ESM::Skill::HandToHand;
         if(!weapon.isEmpty())
             weapskill = get(weapon).getEquipmentSkill(weapon);
@@ -612,10 +616,6 @@ namespace MWClass
 
         // NOTE: 'object' and/or 'attacker' may be empty.
 
-        // Attacking peaceful NPCs is a crime
-        if (!attacker.isEmpty() && ptr.getClass().getCreatureStats(ptr).getAiSetting(MWMechanics::CreatureStats::AI_Fight).getModified() <= 30)
-            MWBase::Environment::get().getMechanicsManager()->commitCrime(attacker, ptr, MWBase::MechanicsManager::OT_Assault);
-
         if(!successful)
         {
             // TODO: Handle HitAttemptOnMe script function