diff --git a/Lib/lib-tk/SimpleDialog.py b/Lib/lib-tk/SimpleDialog.py
index d82773d..7354779 100644
--- a/Lib/lib-tk/SimpleDialog.py
+++ b/Lib/lib-tk/SimpleDialog.py
@@ -2,7 +2,6 @@
 
 
 from Tkinter import *
-import tktools
 
 
 class SimpleDialog:
@@ -10,7 +9,13 @@
     def __init__(self, master,
 		 text='', buttons=[], default=None, cancel=None,
 		 title=None, class_=None):
-	self.root = tktools.make_toplevel(master, title=title, class_=class_)
+	if class_:
+	    self.root = Toplevel(master, class_=class_)
+	else:
+	    self.root = Toplevel(master)
+	if title:
+	    self.root.title(title)
+	    self.root.iconname(title)
 	self.message = Message(self.root, text=text, aspect=400)
 	self.message.pack(expand=1, fill=BOTH)
 	self.frame = Frame(self.root)
@@ -27,7 +32,28 @@
 		b.config(relief=RIDGE, borderwidth=8)
 	    b.pack(side=LEFT, fill=BOTH, expand=1)
 	self.root.protocol('WM_DELETE_WINDOW', self.wm_delete_window)
-	tktools.set_transient(self.root, master)
+	self._set_transient(master)
+
+    def _set_transient(self, master, relx=0.5, rely=0.3):
+	widget = self.root
+	widget.withdraw() # Remain invisible while we figure out the geometry
+	widget.transient(master)
+	widget.update_idletasks() # Actualize geometry information
+	if master.winfo_ismapped():
+	    m_width = master.winfo_width()
+	    m_height = master.winfo_height()
+	    m_x = master.winfo_rootx()
+	    m_y = master.winfo_rooty()
+	else:
+	    m_width = master.winfo_screenwidth()
+	    m_height = master.winfo_screenheight()
+	    m_x = m_y = 0
+	w_width = widget.winfo_reqwidth()
+	w_height = widget.winfo_reqheight()
+	x = m_x + (m_width - w_width) * relx
+	y = m_y + (m_height - w_height) * rely
+	widget.geometry("+%d+%d" % (x, y))
+	widget.deiconify() # Become visible at the desired location
 
     def go(self):
 	self.root.grab_set()
@@ -58,8 +84,8 @@
 	d = SimpleDialog(root,
 			 text="This is a test dialog.  "
 		              "Would this have been an actual dialog, "
-			      "the buttons below would have glowed "
-			      "in soft pink light. "
+			      "the buttons below would have been glowing "
+			      "in soft pink light.\n"
 			      "Do you believe this?",
 			 buttons=["Yes", "No", "Cancel"],
 			 default=0,
