diff --git a/apps/openmw/mwdialogue/dialoguemanagerimp.cpp b/apps/openmw/mwdialogue/dialoguemanagerimp.cpp
index 3102354a64..830c2bcacc 100644
--- a/apps/openmw/mwdialogue/dialoguemanagerimp.cpp
+++ b/apps/openmw/mwdialogue/dialoguemanagerimp.cpp
@@ -448,14 +448,14 @@ namespace MWDialogue
     {
         MWBase::Environment::get().getWindowManager()->removeGuiMode(MWGui::GM_Dialogue);
 
-        // Clamp permanent disposition change so that final disposition doesn't go below 0 (could happen with intimidate)       
-        float curDisp = static_cast<float>(MWBase::Environment::get().getMechanicsManager()->getDerivedDisposition(mActor, false));
-        if (curDisp + mPermanentDispositionChange < 0)
-            mPermanentDispositionChange = -curDisp;
-
         // Apply disposition change to NPC's base disposition
         if (mActor.getClass().isNpc())
         {
+            // Clamp permanent disposition change so that final disposition doesn't go below 0 (could happen with intimidate)       
+            float curDisp = static_cast<float>(MWBase::Environment::get().getMechanicsManager()->getDerivedDisposition(mActor, false));
+            if (curDisp + mPermanentDispositionChange < 0)
+                mPermanentDispositionChange = -curDisp;
+
             MWMechanics::NpcStats& npcStats = mActor.getClass().getNpcStats(mActor);
             npcStats.setBaseDisposition(static_cast<int>(npcStats.getBaseDisposition() + mPermanentDispositionChange));
         }