diff --git a/RISCOS/sleep.c b/RISCOS/sleep.c
index c85eb86..ffdff81 100644
--- a/RISCOS/sleep.c
+++ b/RISCOS/sleep.c
@@ -9,33 +9,33 @@
 
 int riscos_sleep(double delay)
 {
-	os_t starttime, endtime, time; /* monotonic times (centiseconds) */
-	int *pollword, ret;
-	osbool claimed;
+    os_t starttime, endtime, time; /* monotonic times (centiseconds) */
+    int *pollword, ret;
+    osbool claimed;
 
-        /* calculate end time */
-	starttime = os_read_monotonic_time();
-	if (starttime + 100.0*delay >INT_MAX)
-		endtime = INT_MAX;
-	else
-		endtime = (os_t)(starttime + 100.0*delay);
+    /* calculate end time */
+    starttime = os_read_monotonic_time();
+    if (starttime + 100.0*delay >INT_MAX)
+        endtime = INT_MAX;
+    else
+        endtime = (os_t)(starttime + 100.0*delay);
 
-	/* allocate (in RMA) and set pollword for xupcall_sleep */
-	pollword = osmodule_alloc(4);
-	*pollword = 1;
+    /* allocate (in RMA) and set pollword for xupcall_sleep */
+    pollword = osmodule_alloc(4);
+    *pollword = 1;
 
-	time = starttime;
-	ret = 0;
-	while ( time<endtime && time>=starttime ) {
-		xupcall_sleep (pollword, &claimed);
-		if (PyErr_CheckSignals()) {
-			ret = 1;
-			break;
-		}
-		time = os_read_monotonic_time();
-	}
+    time = starttime;
+    ret = 0;
+    while ( time<endtime && time>=starttime ) {
+        xupcall_sleep (pollword, &claimed);
+        if (PyErr_CheckSignals()) {
+            ret = 1;
+            break;
+        }
+        time = os_read_monotonic_time();
+    }
 
-	/* deallocate pollword */
-	osmodule_free(pollword);
-	return ret;
+    /* deallocate pollword */
+    osmodule_free(pollword);
+    return ret;
 }
