diff --git a/RISCOS/Modules/riscosmodule.c b/RISCOS/Modules/riscosmodule.c
index 55f189d..3dabb4d 100644
--- a/RISCOS/Modules/riscosmodule.c
+++ b/RISCOS/Modules/riscosmodule.c
@@ -31,39 +31,50 @@
 
 /* RISCOS file commands */
 
-static PyObject *riscos_remove(PyObject *self,PyObject *args)
-{       char *path1;
-	if (!PyArg_Parse(args, "s", &path1)) return NULL;
+static PyObject *
+riscos_remove(PyObject *self, PyObject *args)
+{
+    char *path1;
+	if (!PyArg_ParseTuple(args, "s:remove", &path1)) return NULL;
 	if (remove(path1)) return PyErr_SetFromErrno(PyExc_OSError);
 	Py_INCREF(Py_None);
 	return Py_None;
 }
 
-static PyObject *riscos_rename(PyObject *self,PyObject *args)
-{	char *path1, *path2;
-	if (!PyArg_Parse(args, "(ss)", &path1, &path2)) return NULL;
+static PyObject *
+riscos_rename(PyObject *self, PyObject *args)
+{
+	char *path1, *path2;
+	if (!PyArg_ParseTuple(args, "ss:rename", &path1, &path2))
+        return NULL;
 	if (rename(path1,path2)) return PyErr_SetFromErrno(PyExc_OSError);
 	Py_INCREF(Py_None);
 	return Py_None;
 }
 
-static PyObject *riscos_system(PyObject *self,PyObject *args)
-{	char *command;
-	if (!PyArg_Parse(args, "s", &command)) return NULL;
+static PyObject *
+riscos_system(PyObject *self, PyObject *args)
+{
+	char *command;
+	if (!PyArg_ParseTuple(args, "s:system", &command)) return NULL;
 	return PyInt_FromLong(system(command));
 }
 
-static PyObject *riscos_chdir(PyObject *self,PyObject *args)
-{	char *path;
-	if (!PyArg_Parse(args, "s", &path)) return NULL;
+static PyObject *
+riscos_chdir(PyObject *self, PyObject *args)
+{
+	char *path;
+	if (!PyArg_ParseTuple(args, "s:chdir", &path)) return NULL;
 	e=xosfscontrol_dir(path);
 	if(e) return riscos_oserror();
 	Py_INCREF(Py_None);
 	return Py_None;
 }
 
-static PyObject *canon(char *path)
-{ int len;
+static PyObject *
+canon(char *path)
+{
+  int len;
   PyObject *obj;
   char *buf;
   e=xosfscontrol_canonicalise_path(path,0,0,0,0,&len);
@@ -78,32 +89,39 @@
   return riscos_oserror();
 }
 
-static PyObject *riscos_getcwd(PyObject *self,PyObject *args)
-{ if(!PyArg_NoArgs(args)) return NULL;
-  return canon("@");
+static PyObject *
+riscos_getcwd(PyObject *self, PyObject *unused)
+{
+    return canon("@");
 }
 
-static PyObject *riscos_expand(PyObject *self,PyObject *args)
-{	char *path;
-	if (!PyArg_Parse(args, "s", &path)) return NULL;
+static PyObject *
+riscos_expand(PyObject *self, PyObject *args)
+{
+	char *path;
+	if (!PyArg_ParseTuple(args, "s:expand", &path)) return NULL;
         return canon(path);
 }
 
-static PyObject *riscos_mkdir(PyObject *self,PyObject *args)
-{	char *path;
-        int mode;
-        if (!PyArg_ParseTuple(args, "s|i", &path, &mode)) return NULL;
-        e=xosfile_create_dir(path,0);
-        if(e) return riscos_oserror();
+static PyObject *
+riscos_mkdir(PyObject *self, PyObject *args)
+{
+	char *path;
+    int mode;
+    if (!PyArg_ParseTuple(args, "s|i:mkdir", &path, &mode)) return NULL;
+    e=xosfile_create_dir(path,0);
+    if(e) return riscos_oserror();
 	Py_INCREF(Py_None);
 	return Py_None;
 }
 
-static PyObject *riscos_listdir(PyObject *self,PyObject *args)
-{	char *path,buf[256];
-        PyObject *d, *v;
-        int c=0,count;
-	if (!PyArg_Parse(args, "s", &path)) return NULL;
+static PyObject *
+riscos_listdir(PyObject *self, PyObject *args)
+{
+	char *path,buf[256];
+    PyObject *d, *v;
+    int c=0,count;
+	if (!PyArg_ParseTuple(args, "s:listdir", &path)) return NULL;
 	d=PyList_New(0);
 	if(!d) return NULL;
 	for(;;)
@@ -158,14 +176,15 @@
 
 static PyTypeObject StatResultType;
 
-static PyObject *riscos_stat(PyObject *self,PyObject *args)
+static PyObject *
+riscos_stat(PyObject *self, PyObject *args)
 {	
 	PyObject *v;
 	char *path;
         int ob,len;
         bits t=0;
         bits ld,ex,at,ft,mode;
-	if (!PyArg_Parse(args, "s", &path)) return NULL;
+	if (!PyArg_ParseTuple(args, "s:stat", &path)) return NULL;
 	e=xosfile_read_stamped_no_path(path,&ob,&ld,&ex,&len,&at,&ft);
 	if(e) return riscos_oserror();
 	switch (ob)
@@ -207,13 +226,15 @@
         return v;
 }
 
-static PyObject *riscos_chmod(PyObject *self,PyObject *args)
-{	char *path;
-        bits mode;
-        bits attr;
-        attr=(mode&0x700)>>8;
-        attr|=(mode&7)<<4;
-	if (!PyArg_Parse(args, "(si)", &path,(int*)&mode)) return NULL;
+static PyObject *
+riscos_chmod(PyObject *self,PyObject *args)
+{
+	char *path;
+    bits mode;
+    bits attr;
+    attr=(mode&0x700)>>8;
+    attr|=(mode&7)<<4;
+	if (!PyArg_ParseTuple(args, "si:chmod", &path,(int*)&mode)) return NULL;
         e=xosfile_write_attr(path,attr);
         if(e) return riscos_oserror();
 	Py_INCREF(Py_None);
@@ -221,7 +242,8 @@
 }
 
 
-static PyObject *riscos_utime(PyObject *self,PyObject *args)
+static PyObject *
+riscos_utime(PyObject *self, PyObject *args)
 {
 	char *path;
 	long atime, mtime;
@@ -274,35 +296,42 @@
 	return Py_None;
 }
 
-static PyObject *riscos_settype(PyObject *self,PyObject *args)
-{	char *path,*name;
-        int type;
-	if (!PyArg_Parse(args, "(si)", &path,&type))
-	{ PyErr_Clear();
-	  if (!PyArg_Parse(args, "(ss)", &path,&name)) return NULL;
+static PyObject *
+riscos_settype(PyObject *self, PyObject *args)
+{
+	char *path,*name;
+    int type;
+	if (!PyArg_ParseTuple(args, "si:settype", &path,&type))
+	{
+      PyErr_Clear();
+	  if (!PyArg_ParseTuple(args, "ss:settype", &path,&name)) return NULL;
 	  e=xosfscontrol_file_type_from_string(name,(bits*)&type);
 	  if(e) return riscos_oserror();
 	}
-        e=xosfile_set_type(path,type);
-        if(e) return riscos_oserror();
+    e=xosfile_set_type(path,type);
+    if(e) return riscos_oserror();
 	Py_INCREF(Py_None);
 	return Py_None;
 }
 
-static PyObject *riscos_getenv(PyObject *self,PyObject *args)
-{ char *name,*value;
-  if(!PyArg_Parse(args,"s",&name)) return NULL;
+static PyObject *
+riscos_getenv(PyObject *self, PyObject *args)
+{
+  char *name,*value;
+  if(!PyArg_ParseTuple(args,"s:getenv",&name)) return NULL;
   value=getenv(name);
   if(value) return PyString_FromString(value);
   Py_INCREF(Py_None);
   return Py_None;
 }
 
-static PyObject *riscos_putenv(PyObject *self,PyObject *args)
-{ char *name,*value;
+static PyObject *
+riscos_putenv(PyObject *self, PyObject *args)
+{
+  char *name,*value;
   int len;
   os_var_type type=os_VARTYPE_LITERAL_STRING;
-  if(!PyArg_ParseTuple(args,"ss|i",&name,&value,&type)) return NULL;
+  if(!PyArg_ParseTuple(args,"ss|i:putenv",&name,&value,&type)) return NULL;
   if(type!=os_VARTYPE_STRING&&type!=os_VARTYPE_MACRO&&type!=os_VARTYPE_EXPANDED
                             &&type!=os_VARTYPE_LITERAL_STRING)
     return riscos_error("Bad putenv type");
@@ -315,22 +344,26 @@
   return Py_None;
 }
 
-static PyObject *riscos_delenv(PyObject *self,PyObject *args)
-{ char *name;
-  if(!PyArg_Parse(args,"s",&name)) return NULL;
+static PyObject *
+riscos_delenv(PyObject *self, PyObject *args)
+{
+  char *name;
+  if(!PyArg_ParseTuple(args,"s:delenv",&name)) return NULL;
   e=xos_set_var_val(name,NULL,-1,0,0,0,0);
   if(e) return riscos_oserror();
   Py_INCREF(Py_None);
   return Py_None;
 }
 
-static PyObject *riscos_getenvdict(PyObject *self,PyObject *args)
-{ PyObject *dict;
+static PyObject *
+riscos_getenvdict(PyObject *self, PyObject *args)
+{
+  PyObject *dict;
   char value[257];
   char *which="*";
   int size;
   char *context=NULL;
-  if(!PyArg_ParseTuple(args,"|s",&which)) return NULL;
+  if(!PyArg_ParseTuple(args,"|s:getenvdict",&which)) return NULL;
   dict = PyDict_New();
   if (!dict) return NULL;
   /* XXX This part ignores errors */
@@ -348,25 +381,25 @@
 
 static PyMethodDef riscos_methods[] = {
 
-	{"unlink",	riscos_remove},
-        {"remove",      riscos_remove},
-	{"rename",	riscos_rename},
-	{"system",	riscos_system},
-	{"rmdir",	riscos_remove},
-	{"chdir",	riscos_chdir},
-	{"getcwd",	riscos_getcwd},
-	{"expand",      riscos_expand},
-	{"mkdir",	riscos_mkdir,1},
-	{"listdir",	riscos_listdir},
-	{"stat",	riscos_stat},
-	{"lstat",	riscos_stat},
-        {"chmod",	riscos_chmod},
-	{"utime",	riscos_utime},
-	{"settype",	riscos_settype},
-	{"getenv",      riscos_getenv},
-	{"putenv",      riscos_putenv},
-	{"delenv",      riscos_delenv},
-	{"getenvdict",  riscos_getenvdict,1},
+	{"unlink",	riscos_remove, METH_VARARGS},
+    {"remove",  riscos_remove, METH_VARARGS},
+	{"rename",	riscos_rename, METH_VARARGS},
+	{"system",	riscos_system, METH_VARARGS},
+	{"rmdir",	riscos_remove, METH_VARARGS},
+	{"chdir",	riscos_chdir,  METH_VARARGS},
+	{"getcwd",	riscos_getcwd, METH_NOARGS},
+	{"expand",  riscos_expand, METH_VARARGS},
+	{"mkdir",	riscos_mkdir,  METH_VARARGS},
+	{"listdir",	riscos_listdir, METH_VARARGS},
+	{"stat",	riscos_stat,   METH_VARARGS},
+	{"lstat",	riscos_stat,   METH_VARARGS},
+    {"chmod",	riscos_chmod,  METH_VARARGS},
+	{"utime",	riscos_utime,  METH_VARARGS},
+	{"settype",	riscos_settype, METH_VARARGS},
+	{"getenv",  riscos_getenv, METH_VARARGS},
+	{"putenv",  riscos_putenv, METH_VARARGS},
+	{"delenv",  riscos_delenv, METH_VARARGS},
+	{"getenvdict", riscos_getenvdict, METH_VARARGS},
 	{NULL,		NULL}		 /* Sentinel */
 };
 
diff --git a/RISCOS/Modules/swimodule.c b/RISCOS/Modules/swimodule.c
index b460b2f..b241276 100644
--- a/RISCOS/Modules/swimodule.c
+++ b/RISCOS/Modules/swimodule.c
@@ -552,14 +552,14 @@
 
 
 static PyMethodDef SwiMethods[]=
-{ { "swi", swi_swi,1},
-  { "block", PyBlock_New,1},
-  { "register", PyRegister,1},
-  { "string", swi_string,METH_VARARGS, swi_string__doc__},
-  { "integer", swi_integer,METH_VARARGS, swi_integer__doc__},
-  { "integers", swi_integers,METH_VARARGS, swi_integers__doc__},
-  { "tuples", swi_tuples,METH_VARARGS, swi_tuples__doc__},
-  { "tuple", swi_tuple,METH_VARARGS, swi_tuple__doc__},
+{ { "swi", swi_swi, METH_VARARGS},
+  { "block", PyBlock_New, METH_VARARGS},
+  { "register", PyRegister, METH_VARARGS},
+  { "string", swi_string, METH_VARARGS, swi_string__doc__},
+  { "integer", swi_integer, METH_VARARGS, swi_integer__doc__},
+  { "integers", swi_integers, METH_VARARGS, swi_integers__doc__},
+  { "tuples", swi_tuples, METH_VARARGS, swi_tuples__doc__},
+  { "tuple", swi_tuple, METH_VARARGS, swi_tuple__doc__},
   { NULL,NULL,0,NULL}		 /* Sentinel */
 };
 
