New from Jeffrey; small nits.
diff --git a/Lib/re.py b/Lib/re.py
index e2732b8..2d24da5 100644
--- a/Lib/re.py
+++ b/Lib/re.py
@@ -350,6 +350,7 @@
 	self.syntax = syntax
 	Instruction.__init__(self, chr(20), 2)
     def assemble(self, postition, labels):
+	# XXX
 	return self.opcode + chr(self.syntax)
 
 class NotSyntaxSpec(Instruction):
@@ -358,6 +359,7 @@
 	self.syntax = syntax
 	Instruction.__init__(self, chr(21), 2)
     def assemble(self, postition, labels):
+	# XXX
 	return self.opcode + chr(self.syntax)
 
 class Label(Instruction):
@@ -373,11 +375,15 @@
     def __init__(self, register):
 	self.register = register
 	Instruction.__init__(self, '', 0)
+    def assemble(self, position, labels):
+	raise error, 'unmatched open parenthesis'
 
 class Alternation(Instruction):
     name = '|'
     def __init__(self):
 	Instruction.__init__(self, '', 0)
+    def assemble(self, position, labels):
+	raise error, 'an alternation was not taken care of'
 
 #
 #
@@ -924,7 +930,9 @@
 	elif char == '*':
 	    # Kleene closure
 	    if len(stack) == 0:
-		raise error, 'the Kleene closure needs something to repeat'
+		raise error, '* needs something to repeat'
+	    if (stack[-1][0].name == '(') or (stack[-1][0].name == '|'):
+		raise error, '* needs something to repeat'
 	    registers = registers_used(stack[-1])
 	    if (index < len(pattern)) and (pattern[index] == '?'):
 		# non-greedy matching
@@ -948,7 +956,9 @@
 	elif char == '+':
 	    # positive closure
 	    if len(stack) == 0:
-		raise error, 'the positive closure needs something to repeat'
+		raise error, '+ needs something to repeat'
+	    if (stack[-1][0].name == '(') or (stack[-1][0].name == '|'):
+		raise error, '+ needs something to repeat'
 	    registers = registers_used(stack[-1])
 	    if (index < len(pattern)) and (pattern[index] == '?'):
 		# non-greedy