Index: guiframe/gui_manager.py
===================================================================
--- guiframe/gui_manager.py	(revision 08e1912795ee202be402c3233b4dce063355656b)
+++ guiframe/gui_manager.py	(revision fadf9258b8422294aa1048dc7aa8cf2f3cdd5d56)
@@ -236,5 +236,7 @@
                                          (self.panel_on_focus.window_caption))
                 elif self.panel_on_focus != self._data_panel:
-                    self.cpanel_on_focus = self.panel_on_focus
+                    cpanel = self.panel_on_focus
+                    if self.cpanel_on_focus != cpanel:
+                        self.cpanel_on_focus = self.panel_on_focus
                 #update toolbar
                 self._update_toolbar_helper()
@@ -242,4 +244,26 @@
                 self.enable_edit_menu()
 
+    def reset_bookmark_menu(self, panel):
+        """
+        Reset Bookmark menu list
+        
+        : param panel: a control panel or tap where the bookmark is
+        """
+        cpanel = panel
+        if self._toolbar != None and cpanel._bookmark_flag:
+            for item in  self._toolbar.get_bookmark_items():
+                self._toolbar.remove_bookmark_item(item)
+            self._toolbar.add_bookmark_default()
+            pos = 0
+            for bitem in cpanel.popUpMenu.GetMenuItems():
+                pos += 1
+                if pos < 3:
+                    continue
+                id =  bitem.GetId()
+                label = bitem.GetLabel()
+                self._toolbar.append_bookmark_item(id, label)
+                wx.EVT_MENU(self, id, cpanel._back_to_bookmark)
+            self._toolbar.Realize()
+             
 
     def build_gui(self):
@@ -690,4 +714,6 @@
         if self._toolbar is  None:
             return
+        if self.cpanel_on_focus is not None:
+            self.reset_bookmark_menu(self.cpanel_on_focus)
         self._toolbar.update_toolbar(self.cpanel_on_focus)
         if self._current_perspective is not None:
@@ -695,6 +721,8 @@
         if self.cpanel_on_focus is not None:
             panel_name = self.cpanel_on_focus.window_caption
+            
         self._toolbar.update_button(application_name=application_name, 
                                         panel_name=panel_name)
+        
         self._toolbar.Realize()
         
@@ -1749,6 +1777,5 @@
                         if name == panel.window_name:
                             panel.on_set_focus(event=None)
-                            break
-                           
+                            break               
             name = self._current_perspective.sub_menu
             if self._data_panel is not None:
Index: guiframe/gui_toolbar.py
===================================================================
--- guiframe/gui_toolbar.py	(revision f932c02ba89fbb2edf23482f8b275c10454e593b)
+++ guiframe/gui_toolbar.py	(revision fadf9258b8422294aa1048dc7aa8cf2f3cdd5d56)
@@ -112,12 +112,10 @@
         self._bookmark_bt.Disable()
         self._bookmark_menu = wx.Menu()
-        id = wx.NewId()
-        self._bookmark_menu.Append(id, 'Add bookmark')
-        self._bookmark_menu.AppendSeparator()
-        wx.EVT_MENU(self, id, self.on_bookmark)
+        self.add_bookmark_default()
+        
         
         self._bookmark_bt.SetMenu(self._bookmark_menu)
         self.AddControl(self._bookmark_bt)
-       
+
         self.SetToolBitmapSize(tbar_size)
         self.AddSeparator()
@@ -136,5 +134,14 @@
         
         self.Realize()
-        
+    
+    def add_bookmark_default(self):   
+        """
+        Add default items in bookmark menu
+        """
+        id = wx.NewId()
+        self._bookmark_menu.Append(id, 'Add bookmark')
+        self._bookmark_menu.AppendSeparator()
+        wx.EVT_MENU(self, id, self.on_bookmark)
+   
     def on_bind_button(self):
         """
@@ -241,3 +248,20 @@
         self._bookmark_menu.Append(id, str(title), str(hint))
         wx.EVT_MENU(self, id, handler)
-       
+   
+    def remove_bookmark_item(self, item):   
+        """
+        Remove a bookmark item
+        """
+        self._bookmark_menu.DestroyItem(item)
+        
+    def get_bookmark_items(self):
+        """
+        Get bookmark menu items
+        """
+        return self._bookmark_menu.GetMenuItems()
+    
+    def append_bookmark_item(self, id, label):
+        """
+        Append a item in bookmark
+        """
+        self._bookmark_menu.Append(id, label)
Index: invariantview/perspectives/invariant/invariant_panel.py
===================================================================
--- invariantview/perspectives/invariant/invariant_panel.py	(revision eaab2adf2047587858c5e1ec072121fe4d845e75)
+++ invariantview/perspectives/invariant/invariant_panel.py	(revision fadf9258b8422294aa1048dc7aa8cf2f3cdd5d56)
@@ -121,4 +121,5 @@
         #edit the panel
         if self._data is not None:
+            self._delete_bookmark_items()
             self.get_state_by_num(0)
             data_name = self._data.name
@@ -139,4 +140,19 @@
         return True  
     
+    def _delete_bookmark_items(self):
+        """
+        Delete bookmark menu items
+        """
+        # delete toolbar menu
+        self.parent.reset_bookmark_menu(self)
+        self.parent._update_toolbar_helper()
+        # delete popUpMenu items
+        pos = 0
+        for item in self.popUpMenu.GetMenuItems():
+            pos += 1
+            if pos < 3:
+                continue
+            self.popUpMenu.DestroyItem(item)
+                
     def set_message(self):
         """
Index: sansview/perspectives/fitting/basepage.py
===================================================================
--- sansview/perspectives/fitting/basepage.py	(revision 6d8053cfe7dbb2b52b62ee27eac8fdc430241e8c)
+++ sansview/perspectives/fitting/basepage.py	(revision fadf9258b8422294aa1048dc7aa8cf2f3cdd5d56)
@@ -145,5 +145,5 @@
     
         id = wx.NewId()
-        self._keep = wx.MenuItem(self.popUpMenu,id,"BookMark",
+        self._keep = wx.MenuItem(self.popUpMenu,id,"Add bookmark",
                                  " Keep the panel status to recall it later")
         self.popUpMenu.AppendItem(self._keep)
@@ -497,4 +497,5 @@
             ## reset state of checkbox,textcrtl  and  regular parameters value
             self.reset_page(previous_state)   
+        
                
     def on_preview(self, event):
@@ -1911,4 +1912,5 @@
         self.disp_list =self.model.getDispParamList()
         self.state.disp_list = self.disp_list
+        self.on_set_focus(None)
         self.Layout()     
         
