Heat the olive oil in a pan over medium-high heat. Stir in the onion and celery and sauté gently for 5 minutes until softened and translucent. Stir in the garlic and chili and cook for another 2 minutes. Add the tomato and half the coriander and increase the heat.
Cook, stirring for 3 minutes, then add the stock. Bring to a boil and then simmer for 5 minutes.
Stir the coconut milk and palm oil into the pan and simmer over low heat for another 5 minutes.
The consistency should be thick, but not stew-like, so add some water if needed.
Stir in the limejuice and remaining coriander, and then season with salt to taste.
Divide the crabmeat into 4 bowls and pour the soup on top.
Serve the chili oil and lime wedges on the side.