diff --git a/Include/structseq.h b/Include/structseq.h
index e662916..a482bd8 100644
--- a/Include/structseq.h
+++ b/Include/structseq.h
@@ -35,6 +35,10 @@
 #define PyStructSequence_SET_ITEM(op, i, v) \
 	(((PyStructSequence *)(op))->ob_item[i] = v)
 
+#define PyStructSequence_GET_ITEM(op, i) \
+	(((PyStructSequence *)(op))->ob_item[i])
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 8ce6667..c7acf3a 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -255,6 +255,29 @@
 }
 
 static PyObject *
+structtime_totuple(PyObject *t)
+{
+	PyObject *x = NULL;
+	unsigned int i;
+	PyObject *v = PyTuple_New(9);
+	if (v == NULL)
+		return NULL;
+
+	for (i=0; i<9; i++) {
+		x = PyStructSequence_GET_ITEM(t, i);
+		Py_INCREF(x);
+		PyTuple_SET_ITEM(v, i, x);
+	}
+
+	if (PyErr_Occurred()) {
+		Py_XDECREF(v);
+		return NULL;
+	}
+
+	return v;
+}
+
+static PyObject *
 time_convert(double when, struct tm * (*function)(const time_t *))
 {
 	struct tm *p;
@@ -332,18 +355,36 @@
 {
 	int y;
 	memset((void *) p, '\0', sizeof(struct tm));
+	PyObject *t = NULL;
 
-	if (!PyArg_Parse(args, "(iiiiiiiii)",
-			 &y,
-			 &p->tm_mon,
-			 &p->tm_mday,
-			 &p->tm_hour,
-			 &p->tm_min,
-			 &p->tm_sec,
-			 &p->tm_wday,
-			 &p->tm_yday,
-			 &p->tm_isdst))
+	if (PyTuple_Check(args)) {
+		t = args;
+		Py_INCREF(t);
+	}
+	else if (Py_Type(args) == &StructTimeType) {
+		t = structtime_totuple(args);
+	}
+	else {
+		PyErr_SetString(PyExc_TypeError,
+				"Tuple or struct_time argument required");
 		return 0;
+	}
+
+	if (t == NULL || !PyArg_ParseTuple(t, "iiiiiiiii",
+					   &y,
+					   &p->tm_mon,
+					   &p->tm_mday,
+					   &p->tm_hour,
+					   &p->tm_min,
+					   &p->tm_sec,
+					   &p->tm_wday,
+					   &p->tm_yday,
+					   &p->tm_isdst)) {
+		Py_XDECREF(t);
+		return 0;
+	}
+	Py_DECREF(t);
+
 	if (y < 1900) {
 		PyObject *accept = PyDict_GetItemString(moddict,
 							"accept2dyear");
