diff --git a/Source/Engine/Networking/NetworkReplicator.cpp b/Source/Engine/Networking/NetworkReplicator.cpp
index 5849dbb37..4c99defda 100644
--- a/Source/Engine/Networking/NetworkReplicator.cpp
+++ b/Source/Engine/Networking/NetworkReplicator.cpp
@@ -843,11 +843,6 @@ void NetworkReplicator::SetObjectOwnership(ScriptingObject* obj, uint32 ownerCli
item.Role = localRole;
SendObjectRoleMessage(item);
}
- else
- {
- // Object is the owner
- CHECK(localRole == NetworkObjectRole::OwnedAuthoritative);
- }
}
else
{
diff --git a/Source/Engine/Networking/NetworkReplicator.h b/Source/Engine/Networking/NetworkReplicator.h
index 706aee97e..0957094d0 100644
--- a/Source/Engine/Networking/NetworkReplicator.h
+++ b/Source/Engine/Networking/NetworkReplicator.h
@@ -146,7 +146,7 @@ public:
/// The new owner. Set to NetworkManager::LocalClientId for local client to be owner (server might reject it).
/// The local role to assign for the object.
/// True if apply the ownership to all child objects of this object (eg. all child actors and scripts attached to the networked actor).
- API_FUNCTION() static void SetObjectOwnership(ScriptingObject* obj, uint32 ownerClientId, NetworkObjectRole localRole = NetworkObjectRole::Replicated, bool hierarchical = false);
+ API_FUNCTION() static void SetObjectOwnership(ScriptingObject* obj, uint32 ownerClientId, NetworkObjectRole localRole = NetworkObjectRole::Replicated, bool hierarchical = true);
///
/// Marks the object dirty to perform immediate replication to the other clients.