diff --git a/src/conio/x_events.c b/src/conio/x_events.c
index 5b2713190437c38ea7c2ab3703ccc8516abf2135..6eb812791fd373e41cfc52ad50de1c438dc74d3c 100644
--- a/src/conio/x_events.c
+++ b/src/conio/x_events.c
@@ -1077,7 +1077,14 @@ static int init_window()
 		x11.XSetWMProperties(dpy, win, NULL, NULL, 0, 0, NULL, wmhints, classhints);
 		x11.XFree(wmhints);
 	}
-	set_win_property(ATOM__NET_WM_ICON, XA_CARDINAL, 32, PropModeReplace, ciolib_initial_icon, ciolib_initial_icon_width * ciolib_initial_icon_width);
+	uint32_t *tmp_icon = malloc(ciolib_initial_icon_width * ciolib_initial_icon_width * 4 + 2);
+	if (tmp_icon) {
+		memcpy(&tmp_icon[2], ciolib_initial_icon, ciolib_initial_icon_width * ciolib_initial_icon_width);
+		tmp_icon[0] = ciolib_initial_icon_width;
+		tmp_icon[1] = ciolib_initial_icon_width;
+		set_win_property(ATOM__NET_WM_ICON, XA_CARDINAL, 32, PropModeReplace, tmp_icon, ciolib_initial_icon_width * ciolib_initial_icon_width + 2);
+		free(tmp_icon);
+	}
 
 	pid_l = getpid();
 	set_win_property(ATOM__NET_WM_PID, XA_CARDINAL, 32, PropModeReplace, &pid_l, 1);