diff --git a/Modules/stdwinmodule.c b/Modules/stdwinmodule.c
index b55e58b..e00fc91 100644
--- a/Modules/stdwinmodule.c
+++ b/Modules/stdwinmodule.c
@@ -459,11 +459,54 @@
 	drawingobject *self;
 	object *args;
 {
-	TEXTATTR saveattr, winattr;
-	object *str;
-	if (!getstrarg(args, &str))
+	object *font, *style;
+	int size;
+	if (args == NULL) {
+		err_badarg();
 		return NULL;
-	wsetfont(getstringvalue(str));
+	}
+	if (is_stringobject(args)) {
+		font = args;
+		style = NULL;
+		size = 0;
+	}
+	else if (is_tupleobject(args)) {
+		int n = gettuplesize(args);
+		if (n == 2) {
+			if (!getstrintarg(args, &font, &size))
+				return NULL;
+			style = NULL;
+		}
+		else if (!getstrstrintarg(args, &font, &style, &size))
+			return NULL;
+	}
+	else {
+		err_badarg();
+		return NULL;
+	}
+	if (getstringsize(font) != 0)
+		wsetfont(getstringvalue(font));
+	if (style != NULL) {
+		switch (*getstringvalue(style)) {
+		case 'b':
+			wsetbold();
+			break;
+		case 'i':
+			wsetitalic();
+			break;
+		case 'o':
+			wsetbolditalic();
+			break;
+		case 'u':
+			wsetunderline();
+			break;
+		default:
+			wsetplain();
+			break;
+		}
+	}
+	if (size != 0)
+		wsetsize(size);
 	INCREF(None);
 	return None;
 }
