diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5c46be35cf0d9b244256c5ae61c33958838cfe36..9fa4a4f2757cec01b0289f18c2d298a20e6218bc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-08-04  Kai Tietz  <ktietz@redhat.com>
+
+	* config/i386/i386.c (setup_incoming_varargs_ms_64): Set
+	ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
+
 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
 
 	* tree-vectorizer.h (struct _stmt_vec_info): Add new field for
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index a7f8ee5bdf3e92e447fe0a5f56ceb6aedaf1726a..2d1e83a6de899b47398ea52a10603e77e81775b7 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -7502,6 +7502,11 @@ setup_incoming_varargs_64 (CUMULATIVE_ARGS *cum)
 static void
 setup_incoming_varargs_ms_64 (CUMULATIVE_ARGS *cum)
 {
+  /* Reset to zero, as there might be a sysv vaarg used
+     before.  */
+  ix86_varargs_gpr_size = 0;
+  ix86_varargs_fpr_size = 0;
+  
   alias_set_type set = get_varargs_alias_set ();
   int i;