Heat the butter and oil in a saucepan on high heat, add the onions, and sauté for 10-12 minutes until browned.
Mix the grated cheeses together and set aside.
Add the stock and garlic to onions. Boil gently, uncovered, for 20 minutes.
He says to push the soup through a food mill, and add pepper and salt, but we left the onions and rest of the ingredients the way they were. They cooked through very well, so they didn't need any mushing in the food processor.
Preheat oven to 400°.
Arrange bread slices in one layer on a cookie sheet and bake for 8-10 minutes. Place 6-8 bread slices in each of 6 12-oz. bowls and arrange bowls on a cookie sheet.
Turn oven up to 425°.
Sprinkle 2 tbsp. of cheeses on top of bread and fill bowls to the rim with soup. Sprinkle 1/2 c. of cheeses on top of the soup, making sure it covers the soup and touches the entire inside edge.
We did a second layer of bread slices under the last cheesing as well.
Bake for 30 minutes until cheese is melted and browned. Serve.