diff --git a/config.def.h b/config.def.h
index 342c9d4..89732b4 100644
--- a/config.def.h
+++ b/config.def.h
@@ -111,6 +111,7 @@ static unsigned int defaultrcs = 257;
  * 2: Block
  * 4: Underline
  * 6: IBeam
+ * 7: Snowman
  */
 static unsigned int cursorshape = 2;
 
diff --git a/st.c b/st.c
index 782d18e..4ead319 100644
--- a/st.c
+++ b/st.c
@@ -3863,6 +3863,8 @@ xdrawcursor(void)
 	/* draw the new one */
 	if (xw.state & WIN_FOCUSED) {
 		switch (xw.cursor) {
+		case 7: /* st extension: snowman */
+			utf8decode("☃", &g.u, UTF_SIZ);
 		case 0: /* Blinking Block */
 		case 1: /* Blinking Block (Default) */
 		case 2: /* Steady Block */