In a small sauce pan, combine 1/2 c milk and flour. Over low heat, whisk together to remove lumps from flour. When mixture is smooth, add in sugar and remaining milk. Continue to whisk and increase heat to medium. Bring mixture to a boil and continue to whisk for one minute. Remove from heat and transfer to a bowl. Place plastic wrap over top to prevent a 'skin' from forming. Let cool completely (may place in refrigerator).
When mixture is cool, combine butter or margarine and shortening in a large mixing bowl. Beat well till combined. Add flour/sugar/milk mixture along with salt and vanilla and beat well.