diff --git a/src/libinput-seat.c b/src/libinput-seat.c
index ef2d804a5035ce6147999c61cce3b7dbd03edc6d..c0a87eadcf556772e04bf12afc2f4a7c92bfd412 100644
--- a/src/libinput-seat.c
+++ b/src/libinput-seat.c
@@ -82,7 +82,8 @@ device_added(struct udev_input *input, struct libinput_device *libinput_device)
 	if (output_name) {
 		device->output_name = strdup(output_name);
 		wl_list_for_each(output, &c->output_list, link)
-			if (strcmp(output->name, device->output_name) == 0)
+			if (output->name &&
+			    strcmp(output->name, device->output_name) == 0)
 				evdev_device_set_output(device, output);
 	} else if (device->output == NULL && !wl_list_empty(&c->output_list)) {
 		output = container_of(c->output_list.next,