diff --git a/src/solver.c b/src/solver.c
@@ -442,7 +442,8 @@ static bool b3ContinuousQueryCallback( int proxyId, int shapeId, void* context )
{
bool didHit = true;
- if ( didHit && ( ( shape->flags & b3_enablePreSolveEvents ) || ( fastShape->flags & b3_enablePreSolveEvents ) ) )
+ if ( didHit && world->preSolveFcn != NULL &&
+ ( ( shape->flags & b3_enablePreSolveEvents ) || ( fastShape->flags & b3_enablePreSolveEvents ) ) )
{
b3ShapeId shapeIdA = { shape->id + 1, world->worldId, shape->generation };
b3ShapeId shapeIdB = { fastShape->id + 1, world->worldId, fastShape->generation };