diff --git a/Lib/aifc.py b/Lib/aifc.py
index 54f0cfd..0c2b10b 100644
--- a/Lib/aifc.py
+++ b/Lib/aifc.py
@@ -338,10 +338,10 @@
 	# _ssnd_chunk -- instantiation of a chunk class for the SSND chunk
 	# _framesize -- size of one frame in the file
 
-	if 0: access _file, _nchannels, _nframes, _sampwidth, _framerate, \
-		  _comptype, _compname, _markers, _soundpos, _version, \
-		  _decomp, _comm_chunk_read, __aifc, _ssnd_seek_needed, \
-		  _ssnd_chunk, _framesize: private
+## 	if 0: access _file, _nchannels, _nframes, _sampwidth, _framerate, \
+## 		  _comptype, _compname, _markers, _soundpos, _version, \
+## 		  _decomp, _comm_chunk_read, __aifc, _ssnd_seek_needed, \
+## 		  _ssnd_chunk, _framesize: private
 
 	def initfp(self, file):
 		self._file = file
@@ -502,7 +502,7 @@
 	#
 	# Internal methods.
 	#
-	if 0: access *: private
+## 	if 0: access *: private
 
 	def _decomp_data(self, data):
 		dummy = self._decomp.SetParam(CL.FRAME_BUFFER_SIZE,
@@ -635,9 +635,9 @@
 	# _datalength -- the size of the audio samples written to the header
 	# _datawritten -- the size of the audio samples actually written
 
-	if 0: access _file, _comptype, _compname, _nchannels, _sampwidth, \
-		  _framerate, _nframes, _aifc, _version, _comp, \
-		  _nframeswritten, _datalength, _datawritten: private
+## 	if 0: access _file, _comptype, _compname, _nchannels, _sampwidth, \
+## 		  _framerate, _nframes, _aifc, _version, _comp, \
+## 		  _nframeswritten, _datalength, _datawritten: private
 
 	def __init__(self, f):
 		if type(f) == type(''):
@@ -829,7 +829,7 @@
 	#
 	# Internal methods.
 	#
-	if 0: access *: private
+## 	if 0: access *: private
 
 	def _comp_data(self, data):
 		dum = self._comp.SetParam(CL.FRAME_BUFFER_SIZE, len(data))
diff --git a/Lib/audiodev.py b/Lib/audiodev.py
index fcfae16..7a8a254 100644
--- a/Lib/audiodev.py
+++ b/Lib/audiodev.py
@@ -2,9 +2,9 @@
 
 class Play_Audio_sgi:
 	# Private instance variables
-	if 0: access frameratelist, nchannelslist, sampwidthlist, oldparams, \
-		  params, config, inited_outrate, inited_width, \
-		  inited_nchannels, port, converter, classinited: private
+## 	if 0: access frameratelist, nchannelslist, sampwidthlist, oldparams, \
+## 		  params, config, inited_outrate, inited_width, \
+## 		  inited_nchannels, port, converter, classinited: private
 
 	classinited = 0
 	frameratelist = nchannelslist = sampwidthlist = None
@@ -129,15 +129,15 @@
 			return self.config.getqueuesize()
 
 	# private methods
-	if 0: access *: private
+## 	if 0: access *: private
 
 	def ulaw2lin(self, data):
 		import audioop
 		return audioop.ulaw2lin(data, 2)
 
 class Play_Audio_sun:
-	if 0: access outrate, sampwidth, nchannels, inited_outrate, inited_width, \
-		  inited_nchannels, converter: private
+## 	if 0: access outrate, sampwidth, nchannels, inited_outrate, inited_width, \
+## 		  inited_nchannels, converter: private
 
 	def __init__(self):
 		self.outrate = 0
diff --git a/Lib/sunau.py b/Lib/sunau.py
index 66fec94..aeac20e 100644
--- a/Lib/sunau.py
+++ b/Lib/sunau.py
@@ -149,9 +149,9 @@
 		file.write(chr(int(data[i])))
 
 class Au_read:
-	access _file, _soundpos, _hdr_size, _data_size, _encoding, \
-		  _sampwidth, _framesize, _framerate, _nchannels, \
-		  _info: private
+## 	access _file, _soundpos, _hdr_size, _data_size, _encoding, \
+## 		  _sampwidth, _framesize, _framerate, _nchannels, \
+## 		  _info: private
 
 	def __init__(self, f):
 		if type(f) == type(''):
@@ -280,9 +280,9 @@
 		self._file = None
 
 class Au_write:
-	access _file, _framerate, _nchannels, _sampwidth, _framesize, \
-		  _nframes, _nframeswritten, _datawritten, _info, \
-		  _comptype: private
+## 	access _file, _framerate, _nchannels, _sampwidth, _framesize, \
+## 		  _nframes, _nframeswritten, _datawritten, _info, \
+## 		  _comptype: private
 
 	def __init__(self, f):
 		if type(f) == type(''):
@@ -410,7 +410,7 @@
 	#
 	# private methods
 	#
-	if 0: access *: private
+## 	if 0: access *: private
 
 	def _ensure_header_written(self):
 		if not self._nframeswritten:
diff --git a/Lib/wave.py b/Lib/wave.py
index 5d1a1c1..bba4e87 100644
--- a/Lib/wave.py
+++ b/Lib/wave.py
@@ -190,10 +190,10 @@
 	# _data_chunk -- instantiation of a chunk class for the DATA chunk
 	# _framesize -- size of one frame in the file
 
-	access _file, _nchannels, _nframes, _sampwidth, _framerate, \
-		  _comptype, _compname, _soundpos, \
-		  _fmt_chunk_read, _data_seek_needed, \
-		  _data_chunk, _framesize: private
+## 	access _file, _nchannels, _nframes, _sampwidth, _framerate, \
+## 		  _comptype, _compname, _soundpos, \
+## 		  _fmt_chunk_read, _data_seek_needed, \
+## 		  _data_chunk, _framesize: private
 
 	def initfp(self, file):
 		self._file = file
@@ -321,7 +321,7 @@
 	#
 	# Internal methods.
 	#
-	access *: private
+## 	access *: private
 
 	def _read_fmt_chunk(self, chunk):
 		wFormatTag = _read_short(chunk)
@@ -362,9 +362,9 @@
 	# _nframeswritten -- the number of frames actually written
 	# _datawritten -- the size of the audio samples actually written
 
-	access _file, _comptype, _compname, _nchannels, _sampwidth, \
-		  _framerate, _nframes, _nframeswritten, \
-		  _datalength, _datawritten: private
+## 	access _file, _comptype, _compname, _nchannels, _sampwidth, \
+## 		  _framerate, _nframes, _nframeswritten, \
+## 		  _datalength, _datawritten: private
 
 	def __init__(self, f):
 		if type(f) == type(''):
@@ -505,7 +505,7 @@
 	#
 	# Internal methods.
 	#
-	access *: private
+## 	access *: private
 
 	def _ensure_header_written(self, datasize):
 		if not self._datawritten:
