Melt the butter with the oil in a large heavy-based pan.
Add the onions and fry with the lid on for 10 mins until soft.
Sprinkle in the sugar and cook for 20 mins more, stirring frequently, until caramelised.
The onions should be really golden, full of flavour and soft when pinched between your fingers.
Take care towards the end to ensure that they don’t burn.
Add the garlic for the final few mins of the onions’ cooking time, then sprinkle in the flour and stir well.
Increase the heat and keep stirring as you gradually add the wine, followed by the hot stock.
Cover and simmer for 15-20 mins.
To serve, turn on the grill, and toast the bread.
Ladle the soup into heatproof bowls.
Put a slice or two of toast on top of the bowls of soup, and pile on the cheese.
Grill until melted.
Alternatively, you can complete the toasts under the grill, then serve them on top.