Index: sansguiframe/src/sans/guiframe/gui_manager.py
===================================================================
--- sansguiframe/src/sans/guiframe/gui_manager.py	(revision 37c36d94cc55386e14aa6f6ddc66e079ce2494bf)
+++ sansguiframe/src/sans/guiframe/gui_manager.py	(revision 53cf669565d119071be47e3aea06357a6e6b9fc9)
@@ -234,4 +234,6 @@
         # List of plot panels
         self.plot_panels = {}
+        # default Graph number fot the plotpanel caption
+        self.graph_num = 0
 
         # Default locations
@@ -808,9 +810,18 @@
                 count += 1
         windowname = p.window_name
-        caption = p.window_caption
+        windowcaption = 'Graph'#p.window_caption
         if count > 0:
             windowname += str(count+1)
-            caption += (' '+str(count))
+            #caption += (' '+str(count))
         p.window_name = windowname
+
+        # Append nummber
+        captions = self._get_plotpanel_captions()
+        while (1):
+            self.graph_num += 1
+            caption = windowcaption + '%s'% str(self.graph_num)
+            if caption not in captions:
+                break
+
         p.window_caption = caption
             
@@ -861,5 +872,17 @@
                     self._data_panel.cb_plotpanel.Append(str(caption), p)
         return ID
-        
+    
+    def _get_plotpanel_captions(self):
+        """
+        Get all the plotpanel cations
+        
+        : return: list of captions
+        """
+        captions = []
+        for Id in self.plot_panels.keys():
+            captions.append(self.plot_panels[Id].window_caption)
+        
+        return captions
+          
     def _setup_menus(self):
         """
@@ -2361,6 +2384,4 @@
         # wx.aui.AuiPaneInfo
         pane_info = self.get_paneinfo(name) 
-        # New Caption
-        pane_info.Caption(new_caption)
         # update the data_panel.cb_plotpanel
         if 'data_panel' in self.panels.keys():
@@ -2368,8 +2389,25 @@
             data_panel = self.panels["data_panel"]
             if data_panel.cb_plotpanel is not None:
+                # Check if any panel has the same caption
+                has_newstring = data_panel.cb_plotpanel.FindString\
+                                                            (str(new_caption)) 
+                caption = new_caption
+                if has_newstring != wx.NOT_FOUND:
+                    captions = self._get_plotpanel_captions()
+                    # Append nummber
+                    inc = 1
+                    while (1):
+                        caption = new_caption + '_%s'% str(inc)
+                        if caption not in captions:
+                            break
+                        inc += 1
+                    # notify to users
+                    msg = "Found Same Title: Added '_%s'"% str(inc)
+                    wx.PostEvent(self, StatusEvent(status=msg))
+                # update data_panel cb
                 pos = data_panel.cb_plotpanel.FindString(str(old_caption)) 
                 if pos != wx.NOT_FOUND:
-                    data_panel.cb_plotpanel.SetString(pos, new_caption)
-                    data_panel.cb_plotpanel.SetStringSelection(new_caption)
+                    data_panel.cb_plotpanel.SetString(pos, caption)
+                    data_panel.cb_plotpanel.SetStringSelection(caption)
         # update window Show menu
         if self._window_menu != None:
@@ -2377,8 +2415,11 @@
                 pos = self._window_menu.FindItem(old_caption)
                 if self._window_menu.GetLabel(pos) == str(old_caption):
-                    self._window_menu.SetLabel(pos, new_caption)
+                    self._window_menu.SetLabel(pos, caption)
                 break
+        # New Caption
+        pane_info.Caption(caption)
         # update aui manager
         self._mgr.Update()
+        return caption
         
     def get_paneinfo(self, name):
@@ -2580,5 +2621,5 @@
         self.panel_on_focus = panel  
         self.set_panel_on_focus(None)
-    
+
     def set_plot_unfocus(self): 
         """
