diff --git a/Objects/setobject.c b/Objects/setobject.c
index b4b58b7..05549e6 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -529,10 +529,17 @@
 	Py_ssize_t pos=0;
 	char *emit = "";	/* No separator emitted on first pass */
 	char *separator = ", ";
+	int literalform = 0;
 
-	if (so->ob_type == &PySet_Type)
+	if (!so->used) {
+		fprintf(fp, "%s()", so->ob_type->tp_name);
+		return 0;
+	}
+
+	if (so->ob_type == &PySet_Type) {
+		literalform = 1;
 		fprintf(fp, "{");
-	else
+	} else
 		fprintf(fp, "%s([", so->ob_type->tp_name);
 	while (set_next(so, &pos, &entry)) {
 		fputs(emit, fp);
@@ -540,7 +547,7 @@
 		if (PyObject_Print(entry->key, fp, 0) != 0)
 			return -1;
 	}
-	if (so->ob_type == &PySet_Type)
+	if (literalform)
 		fputs("}", fp);
 	else
 		fputs("])", fp);
@@ -552,6 +559,10 @@
 {
 	PyObject *keys, *result, *listrepr;
 
+	/* shortcut for the empty set */
+	if (!so->used)
+		return PyString_FromFormat("%s()", so->ob_type->tp_name);
+
 	keys = PySequence_List((PyObject *)so);
 	if (keys == NULL)
 		return NULL;
@@ -567,7 +578,7 @@
 		result = PyString_FromFormat("{%s}", s);
 	} else {
 		result = PyString_FromFormat("%s(%s)", so->ob_type->tp_name,
-			 PyString_AS_STRING(listrepr));
+			 	PyString_AS_STRING(listrepr));
 	}
 	Py_DECREF(listrepr);
 	return result;
