diff --git a/Lib/string.py b/Lib/string.py
index 1412048..f7d4af6 100644
--- a/Lib/string.py
+++ b/Lib/string.py
@@ -12,34 +12,32 @@
 octdigits = '01234567'
 
 # Case conversion helpers
-_caseswap = {}
-for i in range(26):
-	_caseswap[lowercase[i]] = uppercase[i]
-	_caseswap[uppercase[i]] = lowercase[i]
+_idmap = ''
+for i in range(256): _idmap = _idmap + chr(i)
+_lower = _idmap[:ord('A')] + lowercase + _idmap[ord('Z')+1:]
+_upper = _idmap[:ord('a')] + uppercase + _idmap[ord('z')+1:]
+_swapcase = _upper[:ord('A')] + lowercase + _upper[ord('Z')+1:]
 del i
 
 # convert UPPER CASE letters to lower case
 def lower(s):
 	res = ''
 	for c in s:
-		if 'A' <= c <= 'Z': c = _caseswap[c]
-		res = res + c
+		res = res + _lower[ord(c)]
 	return res
 
 # Convert lower case letters to UPPER CASE
 def upper(s):
 	res = ''
 	for c in s:
-		if 'a' <= c <= 'z': c = _caseswap[c]
-		res = res + c
+		res = res + _upper[ord(c)]
 	return res
 
 # Swap lower case letters and UPPER CASE
 def swapcase(s):
 	res = ''
 	for c in s:
-		if 'a' <= c <= 'z' or 'A' <= c <= 'Z': c = _caseswap[c]
-		res = res + c
+		res = res + _swapcase[ord(c)]
 	return res
 
 # Strip leading and trailing tabs and spaces
diff --git a/Lib/stringold.py b/Lib/stringold.py
index 1412048..f7d4af6 100644
--- a/Lib/stringold.py
+++ b/Lib/stringold.py
@@ -12,34 +12,32 @@
 octdigits = '01234567'
 
 # Case conversion helpers
-_caseswap = {}
-for i in range(26):
-	_caseswap[lowercase[i]] = uppercase[i]
-	_caseswap[uppercase[i]] = lowercase[i]
+_idmap = ''
+for i in range(256): _idmap = _idmap + chr(i)
+_lower = _idmap[:ord('A')] + lowercase + _idmap[ord('Z')+1:]
+_upper = _idmap[:ord('a')] + uppercase + _idmap[ord('z')+1:]
+_swapcase = _upper[:ord('A')] + lowercase + _upper[ord('Z')+1:]
 del i
 
 # convert UPPER CASE letters to lower case
 def lower(s):
 	res = ''
 	for c in s:
-		if 'A' <= c <= 'Z': c = _caseswap[c]
-		res = res + c
+		res = res + _lower[ord(c)]
 	return res
 
 # Convert lower case letters to UPPER CASE
 def upper(s):
 	res = ''
 	for c in s:
-		if 'a' <= c <= 'z': c = _caseswap[c]
-		res = res + c
+		res = res + _upper[ord(c)]
 	return res
 
 # Swap lower case letters and UPPER CASE
 def swapcase(s):
 	res = ''
 	for c in s:
-		if 'a' <= c <= 'z' or 'A' <= c <= 'Z': c = _caseswap[c]
-		res = res + c
+		res = res + _swapcase[ord(c)]
 	return res
 
 # Strip leading and trailing tabs and spaces
