Preheat oven to 200 degrees C. Grease and flour a 20x30cm pan.
In a saucepan, combine 1/2 cup margarine, oil, 4 tablespoons cocoa and water. Bring to a boil over medium high heat, stirring often. Set aside.
In a large bowl, sift together the flour and sugar. Make a well in the centre and pour in the cocoa mixture. Stir until smooth. Mix in the buttermilk, 2 teaspoons vanilla, cinnamon, bicarb soda and eggs.
Pour batter into prepared pan. Bake in the preheated oven for 20 minutes, or until a toothpick inserted into the centre of the cake comes out clean. Allow to cool slightly before icing.
For the icing: In a large saucepan, combine 1/2 cup margarine, 4 tablespoons cocoa and 5 tablespoons milk. Bring to a boil, stirring often. Remove from heat. Stir in icing sugar, peanut butter and 1 1/2 teaspoons vanilla. Beat until the icing is blended. Pour over warm cake.