diff --git a/Tools/pynche/PyncheWidget.py b/Tools/pynche/PyncheWidget.py
index 3f15702..db04a2e 100644
--- a/Tools/pynche/PyncheWidget.py
+++ b/Tools/pynche/PyncheWidget.py
@@ -3,6 +3,7 @@
 
 import sys
 from Tkinter import *
+import tkMessageBox
 
 # Milliseconds between interrupt checks
 KEEPALIVE_TIMER = 500
@@ -78,47 +79,15 @@
         print 'Options...'
 
     def __popup_about(self, event=None):
-        print 'About...'
+        tkMessageBox.showinfo('About Pynche 1.0',
+                              '''\
+Pynche -- the PYthonically
+Natural Color and Hue Editor
 
-##	# create chip window
-##	group = Pmw.Group(parent, tag_text='Current Color')
-##        interior = group.interior()
-##	group.pack(side=LEFT, expand=YES, fill=BOTH)
-##	self.__selected = ChipWidget(interior,
-##				     label_text='Selected')
-##	self.__selected.grid()
-##	self.__nearest = ChipWidget(interior,
-##				    label_text='Nearest')
-##	self.__nearest.grid(row=0, column=1)
+Copyright (C) 1998
+Barry A. Warsaw
+All rights reserved
 
-##	# TBD: this is somewhat bogus, as the code should be in a derived
-##	# class of ChipWidget.
-##	self.__chip = self.__nearest.component('chip')
-##	self.__chip.bind('<ButtonPress-1>', self.__buttonpress)
-##	self.__chip.bind('<ButtonRelease-1>', self.__buttonrelease)
-
-##	# create the type-in window
-##	self.__typein = TypeinWidget(interior)
-##	self.__typein.grid(row=0, column=2)
-
-##	# Check keywords and initialize options
-##	self.initialiseoptions(PyncheWidget)
-
-##	self.__typein.configure(delegate=self)
-##	self.__reds.configure(delegate=self)
-##	self.__greens.configure(delegate=self)
-##	self.__blues.configure(delegate=self)
-
-##    def __popup_about(self, event=None):
-##	if not self.__about_dialog:
-##	    Pmw.aboutversion('1.0')
-##	    Pmw.aboutcopyright('Copyright (C) 1998 Barry A. Warsaw\n'
-##			       'All rights reserved')
-##	    Pmw.aboutcontact('For information about Pynche contact:\n'
-##			     'Barry A. Warsaw\n'
-##			     'email: bwarsaw@python.org')
-##	    self.__about_dialog = Pmw.AboutDialog(
-##		applicationname='Pynche -- the PYthonically Natural\n'
-##		'Color and Hue Editor')
-##	self.__about_dialog.show()
-
+For information about Pynche
+contact: Barry A. Warsaw
+email:   bwarsaw@python.org''')
