Heat the oil in a deep saucepan and cook the onion and celery until soft. Add the rest of the ingredients and simmer for 1½ hours, by when the peas will have broken up and the ham will be falling from the bone.
Remove and discard the peppercorns, thyme and bay leaf. Take out the ham hock, remove the fat and cut into 1 inch pieces. Puree the soup.
When ready to serve, re-heat the soup (without boiling) and serve with the ham scattered on top.