diff --git a/Modules/sgimodule.c b/Modules/sgimodule.c
index f7e1263..0d13248 100644
--- a/Modules/sgimodule.c
+++ b/Modules/sgimodule.c
@@ -10,14 +10,14 @@
 static PyObject *
 sgi_nap(PyObject *self, PyObject *args)
 {
-	long ticks;
-	if (!PyArg_ParseTuple(args, "l:nap", &ticks))
-		return NULL;
-	Py_BEGIN_ALLOW_THREADS
-	sginap(ticks);
-	Py_END_ALLOW_THREADS
-	Py_INCREF(Py_None);
-	return Py_None;
+    long ticks;
+    if (!PyArg_ParseTuple(args, "l:nap", &ticks))
+        return NULL;
+    Py_BEGIN_ALLOW_THREADS
+    sginap(ticks);
+    Py_END_ALLOW_THREADS
+    Py_INCREF(Py_None);
+    return Py_None;
 }
 
 extern char *_getpty(int *, int, mode_t, int);
@@ -25,31 +25,31 @@
 static PyObject *
 sgi__getpty(PyObject *self, PyObject *args)
 {
-	int oflag;
-	int mode;
-	int nofork;
-	char *name;
-	int fildes;
-	if (!PyArg_ParseTuple(args, "iii:_getpty", &oflag, &mode, &nofork))
-		return NULL;
-	errno = 0;
-	name = _getpty(&fildes, oflag, (mode_t)mode, nofork);
-	if (name == NULL) {
-		PyErr_SetFromErrno(PyExc_IOError);
-		return NULL;
-	}
-	return Py_BuildValue("(si)", name, fildes);
+    int oflag;
+    int mode;
+    int nofork;
+    char *name;
+    int fildes;
+    if (!PyArg_ParseTuple(args, "iii:_getpty", &oflag, &mode, &nofork))
+        return NULL;
+    errno = 0;
+    name = _getpty(&fildes, oflag, (mode_t)mode, nofork);
+    if (name == NULL) {
+        PyErr_SetFromErrno(PyExc_IOError);
+        return NULL;
+    }
+    return Py_BuildValue("(si)", name, fildes);
 }
 
 static PyMethodDef sgi_methods[] = {
-	{"nap",		sgi_nap,	METH_VARARGS},
-	{"_getpty",	sgi__getpty,	METH_VARARGS},
-	{NULL,		NULL}		/* sentinel */
+    {"nap",             sgi_nap,        METH_VARARGS},
+    {"_getpty",         sgi__getpty,    METH_VARARGS},
+    {NULL,              NULL}           /* sentinel */
 };
 
 
 void
 initsgi(void)
 {
-	Py_InitModule("sgi", sgi_methods);
+    Py_InitModule("sgi", sgi_methods);
 }
