diff --git a/Lib/re.py b/Lib/re.py
index 016cd68..60dcb8b 100644
--- a/Lib/re.py
+++ b/Lib/re.py
@@ -137,7 +137,7 @@
 	    except (KeyError, TypeError):
 		raise IndexError
 	return self.regs[i]
-    def group(i):
+    def group(self, i):
 	if type(i) == type(''):
 	    try:
 		i = self.re.groupindex[i]
@@ -188,12 +188,13 @@
     name = 'set'
     def __init__(self, set):
 	self.set = set
+	print set
 	Instruction.__init__(self, chr(3), 33)
-    def assemble_set(self, position, labels):
+    def assemble(self, position, labels):
 	result = self.opcode
 	temp = 0
 	for i, c in map(lambda x: (x, chr(x)), range(256)):
-	    if c in self.set[2]:
+	    if c in self.set:
 		temp = temp | (1 << (i & 7))
 	    if (i % 8) == 7:
 		result = result + chr(temp)
@@ -203,7 +204,7 @@
 	result = '%-15s' % (self.name)
 	self.set.sort()
 	for char in self.set:
-	    result = result + `char`
+	    result = result + char
 	return result
     
 class Exact(Instruction):
@@ -768,7 +769,7 @@
 		expr.append(Label(label))
 		label = label + 1
 
-	    if stack[-1][0][1] > 0:
+	    if stack[-1][0].register > 0:
 		expr = [StartMemory(stack[-1][0].register)] + \
 		       expr + \
 		       [EndMemory(stack[-1][0].register)]
@@ -1075,7 +1076,6 @@
 		    if next not in set:
 			set.append(next)
 		    last = next
-
 	    if pattern[index] != ']':
 		raise error, 'incomplete set'
 
