diff --git a/src/errors.h b/src/errors.h
index 7909e5a98804b2358cf10c6171131673bfc28b81..75bab0921a52b3a7976bdde977001c80e84478a9 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -17,6 +17,11 @@ struct PIKE_CONCAT(NAME,_error_struct) { \
 };
 
 #define ERR_VAR(TYPE,CTYPE,RUNTYPE,NAME) TYPE NAME ;
+
+/* Some compilers (eg cl) don't like empty structs... */
+#undef EMPTY
+#define EMPTY ERR_VAR(INT_TYPE, int, PIKE_T_INT, ignored__)
+
 #endif /* ERR_EXT_DECLARE */
 
 #ifdef ERR_SETUP