Deprecated: Return type of Aventura\Wprss\Core\DataObject::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/includes/Aventura/Wprss/Core/DataObject.php on line 783

Deprecated: Return type of Aventura\Wprss\Core\DataObject::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/includes/Aventura/Wprss/Core/DataObject.php on line 808

Deprecated: Return type of Aventura\Wprss\Core\DataObject::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/includes/Aventura/Wprss/Core/DataObject.php on line 770

Deprecated: Return type of Aventura\Wprss\Core\DataObject::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/includes/Aventura/Wprss/Core/DataObject.php on line 795

Deprecated: version_compare(): Passing null to parameter #2 ($version2) of type string is deprecated in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/Ultimate_VC_Addons/Ultimate_VC_Addons.php on line 1484

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 44

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 24

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 60

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 76

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 124

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 97

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 109

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 136

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 83

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 44

Deprecated: Return type of RebelCode\Wpra\Core\Entities\Collections\WpEntityCollection::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Entities/Collections/WpEntityCollection.php on line 97

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 60

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Data/AbstractDataSet.php on line 76

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 124

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 97

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 109

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 136

Deprecated: Return type of RebelCode\Wpra\Core\Data\AbstractDataSet::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 83

Deprecated: Return type of Twig\Node\Node::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/vendor/twig/twig/src/Node/Node.php on line 213

Deprecated: Return type of Twig\Node\Node::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/vendor/twig/twig/src/Node/Node.php on line 221

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Database/WpdbTable.php on line 124

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Database/WpdbTable.php on line 105

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Database/WpdbTable.php on line 140

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Database/WpdbTable.php on line 159

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 124

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 97

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 109

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 136

Deprecated: Return type of RebelCode\Wpra\Core\Database\WpdbTable::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/wp-rss-aggregator/src/Util/IteratorDelegateTrait.php on line 83
Cape Malay chicken curry | Bibbyskitchen recipes | local favourites

Cape Malay chicken curry with roasted bananas

Cape Malay chicken curry|roasted bananas

South Africa’s rich cultural heritage is a melting pot of inspiration. This Cape Malay chicken curry, reflect the unique flavours that have made Malay cooking one of South Africa’s most loved cuisines. It’s deeply aromatic, with a rich coconut cream tomato sauce. We love it with homemade mango chutney and caramelised bananas.

Roasting whole spices might seem tedious but, make it elevates curry to the next level. Dry roasting whole spices releases the perfumed oils and intensifies the flavour. Although not traditional, I’ve made a Malay spice paste. It works a treat. While you have everything out, it’s probably worthwhile making a double batch. Curries are one of the easiest ways to entertain, especially if you make it the day before.

Spiced and earthy, this golden hued Cape Malay chicken curry will tick all the boxes. To finish in true South African style, why not try this Spiced Cape brandy pudding with whipped cream.

Cape Malay chicken curry|roasted bananas

Cape Malay chicken curry|roasted bananas

 

Cape Malay chicken curry
Serves 4-6
Dry Spice mix
  • 1 teaspoon coriander seeds
  • 1 teaspoon cumin seeds
  • 5 cardamom pods,crushed and outer husks removed

For the spice mix, dry toast the coriander, cumin seeds and cardamom in a pan for several minutes. Remove from the heat once it smells aromatic. Transfer to a mortar and pestle and grind until fine.

For the curry
  • 2 tablespoons vegetable oil
  • 12 chicken pieces (thigh and drumstick), bone-in, skin removed
  • 1 large onion, diced
  • 2 cloves garlic, minced
  • 1 tablespoon freshly grated ginger
  • 1 red chilli, seeds and membrane removed or 1/2 teaspoon red chilli flakes
  • 2 teaspoons garam masala
  • 1 teaspoon turmeric
  • 2 cinnamon quills or sticks
  • 1 teaspoon sugar
  • 3 tablespoons water
  • 400g tin chopped tomatoes
  • 250ml coconut milk
  • salt and freshly ground black pepper
  • 2-3 bananas, firm but ripe
  • 2 tablespoons brown sugar
  1. Heat 1 tablespoon oil in a frying pan. Season the chicken with salt and pepper and brown in batches, then set aside. Add another tablespoon of oil and  sauté the onion until softened, about 6-8 minutes. Add the garlic and ginger and cook for another minute.
  2. Add the dry spice mix, chilli, garam masala, turmeric, cinnamon and sugar. Cook for a minute or two and then add the water. Cook for just a minute. Scrape the spice mix into a blender and blitz to form a paste.
  3. Return the chicken to the pan and add the spice paste. Toss together to coat the chicken. Add the tomatoes and coconut milk. Cover and simmer on a medium heat for about 35 -40 minutes. Taste and adjust the seasoning if necessary.
  4. Slice the bananas in half. Brush with melted butter and press, cut side down, into brown sugar. Place sugar side down, into a hot pan for several minutes until caramelised. Serve alongside the curry.

 

BK Handy hint: As with most curries, this Cape Malay curry will taste even better the following day. 

If you love the generous flavours of Cape Malay cooking, you’ll probably love these ideas:

Cape Malay Coconut Date Balls

Bobotie filo parcels with apple ring chutney

Stuffed cabbage with freekeh meatballs

11 Comments. Leave new

  • This sounds divine, Di! I’m definitely going to try it… Thanks for all your inspiring, mouth-watering posts and exquisite photos. Your blog is a veritable feast on so many levels! xxx

  • Thank you Gill. The curry is perfect to warm up with, especially with all the rainy weather. Enjoy.

  • Oh my word Di……once again you have nailed it. I just loved this curry. Perfect flavour and heat. As you say, even better the next day. Thank you for your extra recipes on your blog.

  • What a delicious,easy curry to make. Went down so well in our house, even with the 10 year old. Thank you so much, definitely going to add this our family favourites

  • This is one of my favourite curries and a really good option for feeding a crowd. If on-the bone chicken pieces are a bit of a fiddle, the deboned and skinless thighs work a treat.

  • My family thoroughly enjoyed this curry. I can’t wait for winter or rainy days. This is one of those recipes that puts some restaurant food to shame. Thanks Di.

  • So glad they enjoyed it Habi. Always good to have a really aromatic and flavoursome curry recipe that’s not too hot.

  • Sounds delicious Di. Can’t wait to try it!

  • Hi there. My whole family loves curry! This’ll be one of the recipes I hand down to my daughters. A really special curry.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Menu

Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /var/www/dev.bibbyskitchenat36.com/public_html/web/wp-content/plugins/google-captcha/google-captcha.php on line 216