Use __init__ instead of init.
Also use CDDB_PATH and CDDB_WRITE_DIR environment variables in cddb.py.
diff --git a/Lib/plat-irix5/cddb.py b/Lib/plat-irix5/cddb.py
index c233b51..d7fdc96 100755
--- a/Lib/plat-irix5/cddb.py
+++ b/Lib/plat-irix5/cddb.py
@@ -4,8 +4,8 @@
 # Usage is as follows:
 #
 # import readcd
-# r = readcd.Readcd().init()
-# c = Cddb().init(r.gettrackinfo())
+# r = readcd.Readcd()
+# c = Cddb(r.gettrackinfo())
 #
 # Now you can use c.artist, c.title and c.track[trackno] (where trackno
 # starts at 1).  When the CD is not recognized, all values will be the empty
@@ -55,7 +55,7 @@
 	return hash
 	
 class Cddb:
-	def init(self, tracklist):
+	def __init__(self, tracklist):
 		if posix.environ.has_key('CDDB_PATH'):
 			path = posix.environ['CDDB_PATH']
 			cddb_path = string.splitfields(path, ',')
@@ -104,7 +104,7 @@
 			except IOError:
 				pass
 		if not hasattr(self, 'file'):
-			return self
+			return
 		import regex
 		reg = regex.compile('^\\([^.]*\\)\\.\\([^:]*\\):\t\\(.*\\)')
 		while 1:
@@ -138,14 +138,17 @@
 					continue
 				self.track[trackno] = value
 		f.close()
-		return self
 
 	def write(self):
+		import posixpath
 		if posix.environ.has_key('CDDB_WRITE_DIR'):
 			dir = posix.environ['CDDB_WRITE_DIR']
 		else:
 			dir = posix.environ['HOME'] + '/' + _cddbrc
 		file = dir + '/' + self.id + '.rdb'
+		if posixpath.exists(file):
+			# make backup copy
+			posix.rename(file, file + '~')
 		f = open(file, 'w')
 		f.write('album.title:\t' + self.title + '\n')
 		f.write('album.artist:\t' + self.artist + '\n')
diff --git a/Lib/plat-irix5/cdplayer.py b/Lib/plat-irix5/cdplayer.py
index 2685a42..5c2c95a 100755
--- a/Lib/plat-irix5/cdplayer.py
+++ b/Lib/plat-irix5/cdplayer.py
@@ -4,8 +4,8 @@
 # Usage is as follows:
 #
 # import readcd
-# r = readcd.Readcd().init()
-# c = Cdplayer().init(r.gettrackinfo())
+# r = readcd.Readcd()
+# c = Cdplayer(r.gettrackinfo())
 #
 # Now you can use c.artist, c.title and c.track[trackno] (where trackno
 # starts at 1).  When the CD is not recognized, all values will be the empty
@@ -17,7 +17,7 @@
 cdplayerrc = '.cdplayerrc'
 
 class Cdplayer:
-	def init(self, tracklist):
+	def __init__(self, tracklist):
 		import string
 		self.artist = ''
 		self.title = ''
@@ -38,7 +38,7 @@
 			import posix
 			f = open(posix.environ['HOME'] + '/' + cdplayerrc, 'r')
 		except IOError:
-			return self
+			return
 		import regex
 		reg = regex.compile('^\\([^:]*\\):\t\\(.*\\)')
 		s = self.id + '.'
@@ -62,7 +62,6 @@
 					trackno = string.atoi(name[6:])
 					self.track[trackno] = value
 		f.close()
-		return self
 
 	def write(self):
 		import posix
diff --git a/Lib/plat-irix5/readcd.doc b/Lib/plat-irix5/readcd.doc
index b827ccc..1be549c 100755
--- a/Lib/plat-irix5/readcd.doc
+++ b/Lib/plat-irix5/readcd.doc
@@ -18,7 +18,7 @@
 Initialization.
 ===============
 
-r = readcd.Readcd().init([cd-player [, mode]])
+r = readcd.Readcd([cd-player [, mode]])
 
 The optional arguments are the name of the CD device and the mode.
 When "mode" is not specified, it defaults to 'r' (which is the only
diff --git a/Lib/plat-irix5/readcd.py b/Lib/plat-irix5/readcd.py
index 23c00ed..7af6882 100755
--- a/Lib/plat-irix5/readcd.py
+++ b/Lib/plat-irix5/readcd.py
@@ -22,7 +22,7 @@
 		func(arg, cb_type, data)
 
 class Readcd:
-	def init(self, *arg):
+	def __init__(self, *arg):
 		if len(arg) == 0:
 			self.player = cd.open()
 		elif len(arg) == 1:
@@ -38,7 +38,6 @@
 		self.end = 0
 		self.status = None
 		self.trackinfo = None
-		return self
 
 	def eject(self):
 		self.player.eject()