Index: sansguiframe/src/sans/guiframe/dummyapp.py
===================================================================
--- sansguiframe/src/sans/guiframe/dummyapp.py	(revision 70ecd53050e7974fb0c50edfddf5b03e229048fb)
+++ sansguiframe/src/sans/guiframe/dummyapp.py	(revision 6df04e436a27b4ab3e5ca36b3ae72af27849a061)
@@ -122,4 +122,5 @@
 
 if __name__ == "__main__": 
+    from multiprocessing import freeze_support
+    freeze_support()
     sansview = SansView()
-    
Index: sansguiframe/src/sans/guiframe/gui_manager.py
===================================================================
--- sansguiframe/src/sans/guiframe/gui_manager.py	(revision 70ecd53050e7974fb0c50edfddf5b03e229048fb)
+++ sansguiframe/src/sans/guiframe/gui_manager.py	(revision 6df04e436a27b4ab3e5ca36b3ae72af27849a061)
@@ -288,5 +288,5 @@
         self.add_icon()
         # Check for update
-        #self._check_update(None)
+        self._check_update(None)
         # Register the close event so it calls our own method
         wx.EVT_CLOSE(self, self.Close)
@@ -657,5 +657,5 @@
         self._setup_extra_custom()
         #self.Show(True)
-        #self._check_update(None)
+        self._check_update(None)
     
     def _setup_extra_custom(self):  
@@ -698,5 +698,5 @@
         """
         number = self.sb.get_msg_position()
-        wx.Frame.SetStatusText(number=number, *args, **kwds)
+        wx.Frame.SetStatusText(self, number=number, *args, **kwds)
         
     def PopStatusText(self, *args, **kwds):
@@ -704,5 +704,5 @@
         """
         field = self.sb.get_msg_position()
-        wx.Frame.PopStatusText(field=field)
+        wx.Frame.PopStatusText(self, field=field)
         
     def PushStatusText(self, *args, **kwds):
@@ -1233,5 +1233,5 @@
         #self._help_menu.Append(id,'&Check for update', 
         #'Check for the latest version of %s' % config.__appname__)
-        #wx.EVT_MENU(self, id, self._check_update)
+        wx.EVT_MENU(self, id, self._check_update)
         self._menubar.Append(self._help_menu, '&Help')
             
@@ -2085,7 +2085,8 @@
         a call-back method when the current version number has been obtained.
         """
+        
         if hasattr(config, "__update_URL__"):
             import version
-            checker = version.VersionThread(config.__update_URL__,
+            checker = version.VersionThread2(config.__update_URL__,
                                             self._process_version,
                                             baggage=event==None)
@@ -2106,6 +2107,6 @@
         try:
             if cmp(version, config.__version__) > 0:
-                msg = "Version %s is available! See the Help "
-                msg += "menu to download it." % version
+                msg = "Version %s is available! See the Help " % str(version)
+                msg += "menu to download it." 
                 self.SetStatusText(msg)
                 if not standalone:
@@ -2115,5 +2116,5 @@
                 if not standalone:
                     msg = "You have the latest version"
-                    msg += " of %s" % config.__appname__
+                    msg += " of %s" % str(config.__appname__)
                     self.SetStatusText(msg)
         except:
@@ -3206,5 +3207,5 @@
         self.frame.Show(True)
         event.Skip()
-      
+
 if __name__ == "__main__": 
     app = ViewApp(0)
Index: sansguiframe/src/sans/guiframe/version.py
===================================================================
--- sansguiframe/src/sans/guiframe/version.py	(revision 8c347a61193367bd8a75b5a9949e34a45f6b9385)
+++ sansguiframe/src/sans/guiframe/version.py	(revision 6df04e436a27b4ab3e5ca36b3ae72af27849a061)
@@ -14,4 +14,6 @@
 import time
 import subprocess
+import urllib
+import re
 import os
 import getopt
@@ -22,4 +24,6 @@
 ## Local storage file name
 VERSION_FILE  = '.current_version'
+
+DEFAULT_VERSION = '0.0.0'
 
 class VersionChecker(object):
@@ -71,5 +75,5 @@
             return f.read()
         except:
-            return '0.0.0'
+            return DEFAULT_VERSION
 
 class VersionThread(Thread):
@@ -96,4 +100,61 @@
             time.sleep(1)
         self._call_back(checker.get_version(), self._baggage)
+        
+  
+def get_version(url, q=None):
+    """
+    """
+    h = urllib.urlopen(url)
+    for line in h.readlines():
+        version = line.strip()
+        if len(re.findall('\d+\.\d+\.\d+$', version)) > 0:
+            if q is not None:
+                q.put(version)
+            return version
+    if q is not None:
+        q.put(DEFAULT_VERSION)
+    return DEFAULT_VERSION
+      
+class VersionThread2(Thread):
+    """
+    Thread used to start the process of reading the current version of an
+    application from the deployment server. 
+   
+    The VersionChecker is user in a Thread to allow the main application
+    to continue dealing with UI requests from the user. The main application
+    provides a call-back method for when the version number is obtained. 
+    """
+    def __init__ (self, url, call_back=None, baggage=None):
+        Thread.__init__(self)
+        self._url = url
+        self._call_back = call_back
+        self._baggage = baggage
+        self._t_0 = time.time()
+      
+    def run(self):
+        """
+        Execute the process of reading the current application version number.
+        """
+        def is_complete(p):
+            """
+            """
+            if(time.time() - self._t_0 < MAX_WAIT_TIME):
+                if p.is_alive():
+                    return True
+                return False
+            else:
+                return False
+            
+        from multiprocessing import Process, Queue
+        q = Queue()
+        p = Process(target=get_version, args=(self._url, q,))
+        p.start()
+        while(not is_complete(p)):
+            time.sleep(1)
+        version = q.get()
+        p.join()
+        p.terminate()
+        self._call_back(version, self._baggage)
+    
             
 def write_version(version, filename=VERSION_FILE):
@@ -114,16 +175,11 @@
     
     """
-    import urllib
-    import re
     try: 
-        h = urllib.urlopen(url)
-        for line in h.readlines():
-            version = line.strip()
-            if len(re.findall('\d+\.\d+\.\d+$', version)) > 0:
-                write_version(version)
-                return       
-        write_version('0.0.0')
+        version = _get_version(url)
+        write_version(version)
     except:
-        write_version('0.0.0')
+        write_version(DEFAULT_VERSION)
+        
+        
         
 if __name__ == "__main__": 
