diff --git a/com.unity.cinemachine/CHANGELOG.md b/com.unity.cinemachine/CHANGELOG.md
index 100a76f4a..a00049347 100644
--- a/com.unity.cinemachine/CHANGELOG.md
+++ b/com.unity.cinemachine/CHANGELOG.md
@@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [3.1.5] - 2025-012-31
### Unreleased
+### Bugfixes
+- InheritPosition was not inheriting the camera position in all cases.
+
### Added
- Added `CinemachineConfiner2D.CameraWasDisplaced()` and `CinemachineConfiner2D.GetCameraDisplacementDistance()` methods.
diff --git a/com.unity.cinemachine/Runtime/Behaviours/CinemachineCamera.cs b/com.unity.cinemachine/Runtime/Behaviours/CinemachineCamera.cs
index 34190d5a9..853d28f32 100644
--- a/com.unity.cinemachine/Runtime/Behaviours/CinemachineCamera.cs
+++ b/com.unity.cinemachine/Runtime/Behaviours/CinemachineCamera.cs
@@ -137,8 +137,6 @@ public override void OnTargetObjectWarped(Transform target, Vector3 positionDelt
/// World-space orientation to take
public override void ForceCameraPosition(Vector3 pos, Quaternion rot)
{
- PreviousStateIsValid = false;
-
UpdatePipelineCache();
for (int i = 0; i < m_Pipeline.Length; ++i)
if (m_Pipeline[i] != null)
diff --git a/com.unity.cinemachine/Runtime/Core/CinemachineVirtualCameraBase.cs b/com.unity.cinemachine/Runtime/Core/CinemachineVirtualCameraBase.cs
index 9accea611..06b6ad4cc 100644
--- a/com.unity.cinemachine/Runtime/Core/CinemachineVirtualCameraBase.cs
+++ b/com.unity.cinemachine/Runtime/Core/CinemachineVirtualCameraBase.cs
@@ -677,6 +677,7 @@ void ForceCameraPosition(CinemachineVirtualCameraBase vcam, Vector3 pos, Quatern
}
if (ParentCamera is CinemachineVirtualCameraBase vcamParent)
vcamParent.ForceCameraPosition(vcam, pos, rot);
+ PreviousStateIsValid = true;
}
///