diff --git a/modules/bullet/space_bullet.cpp b/modules/bullet/space_bullet.cpp index 2f2c476d542..6ac1b540644 100644 --- a/modules/bullet/space_bullet.cpp +++ b/modules/bullet/space_bullet.cpp @@ -1256,6 +1256,9 @@ bool SpaceBullet::recover_from_penetration(RigidBodyBullet *p_body, const btTran if (otherObject->getCollisionShape()->isCompound()) { const btCompoundShape *cs = static_cast(otherObject->getCollisionShape()); + if (cs->getNumChildShapes() == 0) { + continue; // No shapes to depenetrate from. + } int shape_idx = recover_broad_result.results[i].compound_child_index; ERR_FAIL_COND_V(shape_idx < 0 || shape_idx >= cs->getNumChildShapes(), false);