diff --git a/Doc/partparse.py b/Doc/partparse.py
index a62d694..3c1c046 100644
--- a/Doc/partparse.py
+++ b/Doc/partparse.py
@@ -788,6 +788,7 @@
 			item = item+1
 		return length, item
 	else:
+	        ch = pp[item]
 		try:
 			str = `s(buf, ch.data)`
 		except TypeError:
@@ -852,9 +853,9 @@
 		return self
 	def write(self, data):
 		self.data = self.data + data
-		
+
 # ignore these commands
-ignoredcommands = ('bcode', 'ecode', 'optional')
+ignoredcommands = ('bcode', 'ecode')
 # map commands like these to themselves as plaintext
 wordsselves = ('UNIX', 'ABC', 'C', 'ASCII', 'EOF')
 # \{ --> {,  \} --> }, etc
@@ -1080,7 +1081,7 @@
 	idxsi = hist.indexsubitem	# words
 	command = ''
 	cat_class = ''
-	if idxsi and idxsi[-1] in ('method', 'attribute'):
+	if idxsi and idxsi[-1] in ('method', 'protocol'):
 		command = 'defmethod'
 		cat_class = string.join(idxsi[:-1])
 	elif len(idxsi) == 2 and idxsi[1] == 'function':
@@ -1170,9 +1171,9 @@
 	command = ''
 	cat_class = ''
 	class_class = ''
-	if idxsi[-1] == 'attribute':
+	if idxsi[-1] in ('attribute', 'option'):
 		command = 'defcv'
-		cat_class = 'attribute'
+		cat_class = idxsi[-1]
 		class_class = string.join(idxsi[:-1])
 	elif len(idxsi) == 3 and idxsi[:2] == ['in', 'module']:
 		command = 'defcv'
@@ -1332,7 +1333,12 @@
 					  chunk(GROUP, ch.where, ingroupch)]
 				length, i = length+2, i+2
 				
-			elif envname == 'tableiii':
+			elif (envname == 'tableiii') or \
+			     (envname == 'tableii'):
+				if (envname == 'tableii'):
+					ltable = 2
+				else:
+					ltable = 3
 				wh = ch.where
 				newcode = []
 				
@@ -1359,7 +1365,8 @@
 				del pp[i:newi]
 				length = length - (newi-i)
 
-				for count in range(3):
+				itembody = []
+				for count in range(ltable):
 					length, newi = getnextarg(length, buf, pp, i)
 					emphgroup = [\
 						  chunk(CSNAME, wh, 'emph'), \
@@ -1368,7 +1375,7 @@
 					length = length - (newi-i)
 					if count == 0:
 						itemarg = emphgroup
-					elif count == 2:
+					elif count == ltable-1:
 						itembody = itembody + \
 							  [chunk(PLAIN, wh, '  ---  ')] + \
 							  emphgroup
@@ -1437,7 +1444,7 @@
 					  chunk(GROUP, ch.where, [\
 					  chunk(PLAIN, ch.where, 'table')])]
 				i, length = i+2, length+2
-			elif envname == 'tableiii':
+			elif (envname == 'tableiii') or (envname == 'tableii'):
 				pp[i:i] = [\
 					  chunk(CSLINE, ch.where, 'end'), \
 					  chunk(GROUP, ch.where, [\
@@ -1457,7 +1464,16 @@
 				
 		elif ch.chtype == chunk_type(CSNAME):
 			# control name transformations
-			if s(buf, ch.data) in ignoredcommands:
+			if s(buf, ch.data) == 'optional':
+				pp[i-1].chtype = chunk_type (PLAIN)
+				pp[i-1].data = '['
+				if (i < length) and \
+				   (pp[i].chtype == chunk_type(GROUP)):
+					cp=pp[i].data
+					pp[i:i+1]=cp + [\
+					    chunk(PLAIN, ch.where, ']')]
+					length = length+len(cp)
+			elif s(buf, ch.data) in ignoredcommands:
 				del pp[i-1]
 				i, length = i-1, length-1
 			elif s(buf, ch.data) == '@' and \
@@ -1503,7 +1519,7 @@
 					length = length - (newi-i)
 					length, newi = getnextarg(length, buf, pp, i)
 					text = flattext(buf, pp[i:newi])
-					if text[0] != '(' or text[-1] != ')':
+					if text[:1] != '(' or text[-1:] != ')':
 						raise error, 'expected indexsubitme enclosed in braces'
 					words = string.split(text[1:-1])
 					hist.indexsubitem = words
@@ -1527,7 +1543,7 @@
 
 				cat_class = ''
 				if len(idxsi) >= 2 and idxsi[1] in \
-					  ('method', 'function'):
+					  ('method', 'function', 'protocol'):
 					command = 'findex'
 				elif len(idxsi) >= 2 and idxsi[1] in \
 					  ('exception', 'object'):
@@ -1590,7 +1606,8 @@
 				# \e --> \
 				ch.data = '\\'
 				ch.chtype = chunk_type(PLAIN)
-			elif s(buf, ch.data) == 'lineiii':
+			elif (s(buf, ch.data) == 'lineiii') or\
+			     (s(buf, ch.data) == 'lineii'):
 				# This is the most tricky one
 				# \lineiii{a1}{a2}[{a3}] -->
 				# @item @<cts. of itemargmacro>{a1}
@@ -1603,10 +1620,11 @@
 				if not hist.inenv:
 					raise error, \
 						  'no environment for lineiii'
-				if hist.inenv[0] != 'tableiii':
+				if (hist.inenv[0] != 'tableiii') and\
+				   (hist.inenv[0] != 'tableii'):
 					raise error, \
 						  'wrong command (' + \
-						  `'lineiii'` + \
+						  s(buf, ch.data)+ \
 						  ') in wrong environment (' \
 						  + `hist.inenv[0]` + ')'
 				ch.chtype = chunk_type(CSLINE)
diff --git a/Doc/tools/partparse.py b/Doc/tools/partparse.py
index a62d694..3c1c046 100644
--- a/Doc/tools/partparse.py
+++ b/Doc/tools/partparse.py
@@ -788,6 +788,7 @@
 			item = item+1
 		return length, item
 	else:
+	        ch = pp[item]
 		try:
 			str = `s(buf, ch.data)`
 		except TypeError:
@@ -852,9 +853,9 @@
 		return self
 	def write(self, data):
 		self.data = self.data + data
-		
+
 # ignore these commands
-ignoredcommands = ('bcode', 'ecode', 'optional')
+ignoredcommands = ('bcode', 'ecode')
 # map commands like these to themselves as plaintext
 wordsselves = ('UNIX', 'ABC', 'C', 'ASCII', 'EOF')
 # \{ --> {,  \} --> }, etc
@@ -1080,7 +1081,7 @@
 	idxsi = hist.indexsubitem	# words
 	command = ''
 	cat_class = ''
-	if idxsi and idxsi[-1] in ('method', 'attribute'):
+	if idxsi and idxsi[-1] in ('method', 'protocol'):
 		command = 'defmethod'
 		cat_class = string.join(idxsi[:-1])
 	elif len(idxsi) == 2 and idxsi[1] == 'function':
@@ -1170,9 +1171,9 @@
 	command = ''
 	cat_class = ''
 	class_class = ''
-	if idxsi[-1] == 'attribute':
+	if idxsi[-1] in ('attribute', 'option'):
 		command = 'defcv'
-		cat_class = 'attribute'
+		cat_class = idxsi[-1]
 		class_class = string.join(idxsi[:-1])
 	elif len(idxsi) == 3 and idxsi[:2] == ['in', 'module']:
 		command = 'defcv'
@@ -1332,7 +1333,12 @@
 					  chunk(GROUP, ch.where, ingroupch)]
 				length, i = length+2, i+2
 				
-			elif envname == 'tableiii':
+			elif (envname == 'tableiii') or \
+			     (envname == 'tableii'):
+				if (envname == 'tableii'):
+					ltable = 2
+				else:
+					ltable = 3
 				wh = ch.where
 				newcode = []
 				
@@ -1359,7 +1365,8 @@
 				del pp[i:newi]
 				length = length - (newi-i)
 
-				for count in range(3):
+				itembody = []
+				for count in range(ltable):
 					length, newi = getnextarg(length, buf, pp, i)
 					emphgroup = [\
 						  chunk(CSNAME, wh, 'emph'), \
@@ -1368,7 +1375,7 @@
 					length = length - (newi-i)
 					if count == 0:
 						itemarg = emphgroup
-					elif count == 2:
+					elif count == ltable-1:
 						itembody = itembody + \
 							  [chunk(PLAIN, wh, '  ---  ')] + \
 							  emphgroup
@@ -1437,7 +1444,7 @@
 					  chunk(GROUP, ch.where, [\
 					  chunk(PLAIN, ch.where, 'table')])]
 				i, length = i+2, length+2
-			elif envname == 'tableiii':
+			elif (envname == 'tableiii') or (envname == 'tableii'):
 				pp[i:i] = [\
 					  chunk(CSLINE, ch.where, 'end'), \
 					  chunk(GROUP, ch.where, [\
@@ -1457,7 +1464,16 @@
 				
 		elif ch.chtype == chunk_type(CSNAME):
 			# control name transformations
-			if s(buf, ch.data) in ignoredcommands:
+			if s(buf, ch.data) == 'optional':
+				pp[i-1].chtype = chunk_type (PLAIN)
+				pp[i-1].data = '['
+				if (i < length) and \
+				   (pp[i].chtype == chunk_type(GROUP)):
+					cp=pp[i].data
+					pp[i:i+1]=cp + [\
+					    chunk(PLAIN, ch.where, ']')]
+					length = length+len(cp)
+			elif s(buf, ch.data) in ignoredcommands:
 				del pp[i-1]
 				i, length = i-1, length-1
 			elif s(buf, ch.data) == '@' and \
@@ -1503,7 +1519,7 @@
 					length = length - (newi-i)
 					length, newi = getnextarg(length, buf, pp, i)
 					text = flattext(buf, pp[i:newi])
-					if text[0] != '(' or text[-1] != ')':
+					if text[:1] != '(' or text[-1:] != ')':
 						raise error, 'expected indexsubitme enclosed in braces'
 					words = string.split(text[1:-1])
 					hist.indexsubitem = words
@@ -1527,7 +1543,7 @@
 
 				cat_class = ''
 				if len(idxsi) >= 2 and idxsi[1] in \
-					  ('method', 'function'):
+					  ('method', 'function', 'protocol'):
 					command = 'findex'
 				elif len(idxsi) >= 2 and idxsi[1] in \
 					  ('exception', 'object'):
@@ -1590,7 +1606,8 @@
 				# \e --> \
 				ch.data = '\\'
 				ch.chtype = chunk_type(PLAIN)
-			elif s(buf, ch.data) == 'lineiii':
+			elif (s(buf, ch.data) == 'lineiii') or\
+			     (s(buf, ch.data) == 'lineii'):
 				# This is the most tricky one
 				# \lineiii{a1}{a2}[{a3}] -->
 				# @item @<cts. of itemargmacro>{a1}
@@ -1603,10 +1620,11 @@
 				if not hist.inenv:
 					raise error, \
 						  'no environment for lineiii'
-				if hist.inenv[0] != 'tableiii':
+				if (hist.inenv[0] != 'tableiii') and\
+				   (hist.inenv[0] != 'tableii'):
 					raise error, \
 						  'wrong command (' + \
-						  `'lineiii'` + \
+						  s(buf, ch.data)+ \
 						  ') in wrong environment (' \
 						  + `hist.inenv[0]` + ')'
 				ch.chtype = chunk_type(CSLINE)
