diff --git a/drivers/bcmxcp.c b/drivers/bcmxcp.c
index 882cec2..5faa183 100644
--- a/drivers/bcmxcp.c
+++ b/drivers/bcmxcp.c
@@ -871,13 +871,14 @@ void init_ups_alarm_map(const unsigned char *map, unsigned char len)
 
 int init_outlet(unsigned char len)
 {
-	unsigned char answer[len];
+	unsigned char *answer;
 	int iIndex = 0, res, num;
 	int num_outlet, size_outlet;
 	int outlet_num, outlet_state;
 	short auto_dly_off, auto_dly_on;
 	char outlet_name[25];
 
+	answer = xmalloc((size_t)len);
 	res = command_read_sequence(PW_OUT_MON_BLOCK_REQ, answer);
 	if (res <= 0)
 		fatal_with_errno(EXIT_FAILURE, "Could not communicate with the ups");
