Use random instead of whrandom.
diff --git a/Lib/imaplib.py b/Lib/imaplib.py
index 3c45b2e4..28f62f4 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -12,7 +12,7 @@
 			Time2Internaldate
 """
 
-import re, socket, string, time, whrandom
+import re, socket, string, time, random
 
 #	Globals
 
@@ -109,7 +109,7 @@
 		# Create unique tag for this session,
 		# and compile tagged response matcher.
 
-		self.tagpre = Int2AP(whrandom.random()*32000)
+		self.tagpre = Int2AP(random.random()*32000)
 		self.tagre = re.compile(r'(?P<tag>'
 				+ self.tagpre
 				+ r'\d+) (?P<type>[A-Z]+) (?P<data>.*)')
diff --git a/Lib/mimetools.py b/Lib/mimetools.py
index eed24ca..fc72c79 100644
--- a/Lib/mimetools.py
+++ b/Lib/mimetools.py
@@ -109,7 +109,7 @@
 def choose_boundary():
 	global _prefix
 	import time
-	import whrandom
+	import random
 	if _prefix == None:
 		import socket
 		import os
@@ -124,7 +124,7 @@
 		    pid = '1'
 		_prefix = hostid + '.' + uid + '.' + pid
 	timestamp = '%.3f' % time.time()
-	seed = `whrandom.randint(0, 32767)`
+	seed = `random.randint(0, 32767)`
 	return _prefix + '.' + timestamp + '.' + seed
 
 
diff --git a/Lib/test/sortperf.py b/Lib/test/sortperf.py
index 8355f7a..58fd8a7 100644
--- a/Lib/test/sortperf.py
+++ b/Lib/test/sortperf.py
@@ -7,7 +7,7 @@
 
 import sys
 import time
-import whrandom
+import random
 import marshal
 import tempfile
 import operator
@@ -23,7 +23,7 @@
     except IOError:
         result = []
         for i in range(n):
-            result.append(whrandom.random())
+            result.append(random.random())
         try:
             try:
                 fp = open(fn, "wb")
@@ -44,7 +44,7 @@
         ##assert len(result) == n
         # Shuffle it a bit...
         for i in range(10):
-            i = whrandom.randint(0, n-1)
+            i = random.randint(0, n-1)
             temp = result[:i]
             del result[:i]
             temp.reverse()
@@ -129,7 +129,7 @@
                     y = (y^h^d) & 255
                     h = h>>8
                     z = (z^h^d) & 255
-                whrandom.seed(x, y, z)
+                random.seed(x, y, z)
     r = range(k1, k2+1)                 # include the end point
     tabulate(r)
 
diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py
index 113135b..710fb89 100644
--- a/Lib/test/test_thread.py
+++ b/Lib/test/test_thread.py
@@ -3,12 +3,12 @@
 # Create a bunch of threads, let each do some work, wait until all are done
 
 from test_support import verbose
-import whrandom
+import random
 import thread
 import time
 
 mutex = thread.allocate_lock()
-whmutex = thread.allocate_lock() # for calls to whrandom
+rmutex = thread.allocate_lock() # for calls to random
 running = 0
 done = thread.allocate_lock()
 done.acquire()
@@ -17,9 +17,9 @@
 
 def task(ident):
 	global running
-	whmutex.acquire()
-	delay = whrandom.random() * numtasks
-	whmutex.release()
+	rmutex.acquire()
+	delay = random.random() * numtasks
+	rmutex.release()
 	if verbose:
 	    print 'task', ident, 'will run for', round(delay, 1), 'sec'
 	time.sleep(delay)
@@ -85,9 +85,9 @@
 			# of the current one
 			delay = 0.001
 		else:
-			whmutex.acquire()
-			delay = whrandom.random() * numtasks
-			whmutex.release()
+			rmutex.acquire()
+			delay = random.random() * numtasks
+			rmutex.release()
 		if verbose:
 		    print 'task', ident, 'will run for', round(delay, 1), 'sec'
 		time.sleep(delay)
diff --git a/Lib/threading.py b/Lib/threading.py
index 79319c1..d2ab9ed 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -549,7 +549,7 @@
 
 def _test():
 
-    import whrandom
+    import random
 
     class BoundedQueue(_Verbose):
 
@@ -592,7 +592,7 @@
             self.quota = quota
 
         def run(self):
-            from whrandom import random
+            from random import random
             counter = 0
             while counter < self.quota:
                 counter = counter + 1