diff --git a/apps/opencs/view/render/previewwidget.cpp b/apps/opencs/view/render/previewwidget.cpp
index be7f66016..99e57ea11 100644
--- a/apps/opencs/view/render/previewwidget.cpp
+++ b/apps/opencs/view/render/previewwidget.cpp
@@ -2,6 +2,7 @@
 #include "previewwidget.hpp"
 
 #include <OgreSceneManager.h>
+#include <OgreSceneNode.h>
 
 #include "../../model/world/data.hpp"
 #include "../../model/world/idtable.hpp"
diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp
index 04d909b49..2db3bacf0 100644
--- a/apps/openmw/mwmechanics/character.cpp
+++ b/apps/openmw/mwmechanics/character.cpp
@@ -1245,12 +1245,8 @@ void CharacterController::update(float duration)
             else //avoid z-rotating for knockdown
                 world->rotateObject(mPtr, rot.x, rot.y, 0.0f, true);
 
-            // always control actual movement by animation unless this:
-            // FIXME: actor falling/landing should be controlled by physics engine
-            if(mMovementAnimVelocity == 0.0f && (vec.length() > 0.0f || mJumpState != JumpState_None))
-            {
+            if (mMovementAnimVelocity == 0)
                 world->queueMovement(mPtr, vec);
-            }
         }
 
         movement = vec;
@@ -1290,7 +1286,7 @@ void CharacterController::update(float duration)
         }
 
         // Update movement
-        if(moved.squaredLength() > 1.0f)
+        if(mMovementAnimVelocity > 0)
             world->queueMovement(mPtr, moved);
     }
     mSkipAnim = false;