Temporary fix to valid_identifier().
diff --git a/Lib/re.py b/Lib/re.py
index 6c3ee0b..b08f8af 100644
--- a/Lib/re.py
+++ b/Lib/re.py
@@ -231,16 +231,15 @@
 	result.append(char)
     return string.join(result, '')
 
+_idprog = None
 def valid_identifier(id):
-    import string
-    if len(id) == 0:
+    global _idprog
+    if not _idprog:
+	_idprog = compile(r"[a-zA-Z_]\w*$")
+    if _idprog.match(id):
+	return 1
+    else:
 	return 0
-    if id[0] not in string.letters+'_':
-	return 0
-    for char in id[1:]:
-	if not syntax_table[char] & word:
-	    return 0
-    return 1
 
 def compile(pattern, flags=0):
     groupindex={}