Preheat the oven to 165C. Grease and flour a 25cm ring tin.
In a large bowl cream together the butter, margarine and sugar until light and fluffy. Beat in the eggs one at a time, mixing just until the yellow disappears. Combine the flour, baking powder and cinnamon; stir into the creamed mixture alternately with the milk. Stir in the vanilla and walnuts and pour into the prepared pan.
Bake for 1 hour and 30 minutes, or until a knife or toothpick inserted into the cake comes out clean. Cool in the pan for about 15 minutes before turning out of the pan onto a wire rack to cool completely.