Cook pasta as per packet directions, leaving it slightly under cooked, drain and set aside.
Slice the speck into 4cm (1 1/2 inch ) strips, not too thin. Heat the oil in a medium fry pan and add the speck, saute for a minute and the onion. Once onion is translucent, remove both from the fry pan and add the mushroom. Saute for another minute and remove.
Pre-heat the oven to 220c (430F) and grease a medium sized rectangular baking dish with the extra butter.
For the cheese sauce:
In a medium saucepan heat the butter, once melted add the flour and stir for one minute. Remove from heat and add the warm milk, a little at a time, whisking to combine, until smooth. Add most of the Gruyere, reserving around 1/3 cup, to sprinkle over the bake.
Stir the in the cheese until it is smooth, add garlic powder and salt and pepper to taste. Add the reserved mushroom, speck, onion, cooked pasta and parsley. Stir well, place in a baking dish, sprinkle the remaining Gruyere over the top and bake in the oven for 20 minutes. It is ready when the top is golden in colour.