Put the beans and water into a heavy pot and bring to a boil. Cover, turn heat to low and simmer gently for 2 minutes. Turn off the heat and let the pot sit, covered and undisturbed, for one hour.
Meanwhile cut the mushrooms through their stems into 3 mm thick slices.
Heat the oil in a frying pan over a medium high flame. When hot put in the whole cumin seeds and the cinnamon stick and let them sizzle for 5-6 seconds.
Add the onions and garlic and stir and fry until the onions turn brown at the edges. add the mushrooms and stir and fry until they wilt. Add the tomatoes and the ground spices and stir and cook for a minute.
Cover, turn heat to low and cook in its own juice for 10 minutes then turn off the heat.
Bring the beans to a boil again then cover, turn heat to low and simmer for 20-30 minutes or until the beans are tender. Add the mushroom mixture, salt, black pepper and fresh coriander.
Stir to mix and bring to a simmer, then simmer, uncovered on a low heat for a further 30 minutes, stirring from time to time. Remove the cinnamon stick before serving.