Index: guiframe/gui_manager.py
===================================================================
--- guiframe/gui_manager.py	(revision 9660c149260be85246ea04b27a9fa498aa5c2c25)
+++ guiframe/gui_manager.py	(revision 07c8630371039006ddb41d6fbf870df9db8fa46f)
@@ -1187,4 +1187,12 @@
         wx.EVT_MENU(self, GUIFRAME_ID.REDO_ID, self.on_redo_panel)
         self._edit_menu.AppendSeparator()
+        self._edit_menu.Append(GUIFRAME_ID.COPY_ID, '&Copy', 
+                               'Copy parameter values')
+        wx.EVT_MENU(self, GUIFRAME_ID.COPY_ID, self.on_copy_panel)
+        self._edit_menu.Append(GUIFRAME_ID.PASTE_ID, '&Paste', 
+                               'Paste parameter values')
+        wx.EVT_MENU(self, GUIFRAME_ID.PASTE_ID, self.on_paste_panel)
+        self._edit_menu.AppendSeparator()
+        
         self._edit_menu.Append(GUIFRAME_ID.PREVIEW_ID, '&Report',
                                'Preview current panel')
@@ -2145,4 +2153,8 @@
             flag = self.cpanel_on_focus.get_redo_flag()
             self._edit_menu.Enable(GUIFRAME_ID.REDO_ID, flag)
+            flag = self.cpanel_on_focus.get_copy_flag()
+            self._edit_menu.Enable(GUIFRAME_ID.COPY_ID, flag)
+            flag = self.cpanel_on_focus.get_paste_flag()
+            self._edit_menu.Enable(GUIFRAME_ID.PASTE_ID, flag)
             #flag = self.cpanel_on_focus.get_print_flag()
             #self._edit_menu.Enable(GUIFRAME_ID.PRINT_ID, flag)
@@ -2155,4 +2167,6 @@
             self._edit_menu.Enable(GUIFRAME_ID.UNDO_ID, flag)
             self._edit_menu.Enable(GUIFRAME_ID.REDO_ID, flag)
+            self._edit_menu.Enable(GUIFRAME_ID.COPY_ID, flag)
+            self._edit_menu.Enable(GUIFRAME_ID.PASTE_ID, flag)
             #self._edit_menu.Enable(GUIFRAME_ID.PRINT_ID, flag)
             self._edit_menu.Enable(GUIFRAME_ID.PREVIEW_ID, flag)
@@ -2173,4 +2187,18 @@
             self.cpanel_on_focus.on_redo(event)
             
+    def on_copy_panel(self, event=None):
+        """
+        copy the last panel on focus if possible
+        """
+        if self.cpanel_on_focus is not None:
+            self.cpanel_on_focus.on_copy(event)
+            
+    def on_paste_panel(self, event=None):
+        """
+        paste clipboard to the last panel on focus
+        """
+        if self.cpanel_on_focus is not None:
+            self.cpanel_on_focus.on_paste(event)
+                    
     def on_bookmark_panel(self, event=None):
         """
@@ -2256,4 +2284,18 @@
             self._toolbar.enable_redo(self.cpanel_on_focus)
             
+    def enable_copy(self):
+        """
+        enable copy related control
+        """
+        if self.cpanel_on_focus is not None:
+            self._toolbar.enable_copy(self.cpanel_on_focus)
+            
+    def enable_paste(self):
+        """
+        enable paste 
+        """
+        if self.cpanel_on_focus is not None:
+            self._toolbar.enable_paste(self.cpanel_on_focus)
+                       
     def enable_bookmark(self):
         """
Index: guiframe/gui_style.py
===================================================================
--- guiframe/gui_style.py	(revision adf44c254b67e1c8c055878d09f38a535dfc51b0)
+++ guiframe/gui_style.py	(revision 07c8630371039006ddb41d6fbf870df9db8fa46f)
@@ -24,4 +24,6 @@
     UNDO_ID = wx.NewId()
     REDO_ID = wx.NewId()
+    COPY_ID = wx.NewId()
+    PASTE_ID = wx.NewId()
     BOOKMARK_ID = wx.NewId()
     SAVE_ID = wx.NewId()
@@ -41,4 +43,6 @@
     UNDO_ICON_PATH = os.path.join(PATH, 'undo.png')
     REDO_ICON_PATH = os.path.join(PATH, 'redo.png')
+    COPY_ICON_PATH = os.path.join(PATH, 'copy.png')
+    PASTE_ICON_PATH = os.path.join(PATH, 'paste.png')
     BOOKMARK_ICON_PATH = os.path.join(PATH, 'bookmark.png')
     ZOOM_IN_ID_PATH = os.path.join(PATH, 'zoom_in.png')
@@ -53,4 +57,6 @@
     UNDO_ICON = wx.Image(os.path.join(PATH, 'undo.png'))
     REDO_ICON = wx.Image(os.path.join(PATH, 'redo.png'))
+    COPY_ICON = wx.Image(os.path.join(PATH, 'copy.png'))
+    PASTE_ICON = wx.Image(os.path.join(PATH, 'paste.png'))
     BOOKMARK_ICON = wx.Image(os.path.join(PATH, 'bookmark.png'))
     ZOOM_IN_ICON = wx.Image(os.path.join(PATH, 'zoom_in.png'))
Index: guiframe/gui_toolbar.py
===================================================================
--- guiframe/gui_toolbar.py	(revision bdde9bdf328c8eee1fe863aeba652e7b3e09a784)
+++ guiframe/gui_toolbar.py	(revision 07c8630371039006ddb41d6fbf870df9db8fa46f)
@@ -100,4 +100,21 @@
                           disable_redo_bmp, button_type,'Redo')
         self.AddSeparator()
+        copy_im = GUIFRAME_ICON.COPY_ICON
+        copy_im.Rescale(tbar_size[0], tbar_size[1], wx.IMAGE_QUALITY_HIGH)
+        copy_bmp = copy_im.ConvertToBitmap()
+        #disable_undo_bmp = clear_image(undo_im).ConvertToBitmap()
+        disable_copy_bmp = wx.NullBitmap
+        self.AddLabelTool(GUIFRAME_ID.COPY_ID, 'Copy', copy_bmp,
+                          disable_copy_bmp, button_type,'Copy parameter values')
+        self.AddSeparator()
+        paste_im = GUIFRAME_ICON.PASTE_ICON
+        paste_im.Rescale(tbar_size[0], tbar_size[1], wx.IMAGE_QUALITY_HIGH)
+        paste_bmp = paste_im.ConvertToBitmap()
+        #disable_redo_bmp = clear_image(redo_im).ConvertToBitmap()
+        disable_paste_bmp = wx.NullBitmap
+        self.AddLabelTool(GUIFRAME_ID.PASTE_ID, 'Paste', paste_bmp,
+                          disable_paste_bmp, button_type,'Paste parameter values')
+
+        self.AddSeparator()
         #add button for the current application
         #self.button_application = wx.StaticText(self, -1, 'Welcome')
@@ -136,5 +153,5 @@
         self.button_panel.SetToolTipString(hint)
         self.AddControl(self.button_panel)
-        
+        self.AddSeparator()
         self.Realize()
     
@@ -157,4 +174,8 @@
             self.parent.Bind(wx.EVT_TOOL, self.parent.on_undo_panel,
                              id=GUIFRAME_ID.UNDO_ID)
+            self.parent.Bind(wx.EVT_TOOL, self.parent.on_copy_panel,
+                             id=GUIFRAME_ID.COPY_ID)
+            self.parent.Bind(wx.EVT_TOOL, self.parent.on_paste_panel,
+                             id=GUIFRAME_ID.PASTE_ID)
             self.parent.Bind(wx.EVT_TOOL, self.parent.on_reset_panel,
                              id=GUIFRAME_ID.RESET_ID)
@@ -180,4 +201,6 @@
             self.EnableTool(GUIFRAME_ID.UNDO_ID,False)
             self.EnableTool(GUIFRAME_ID.REDO_ID, False)
+            self.EnableTool(GUIFRAME_ID.COPY_ID,False)
+            self.EnableTool(GUIFRAME_ID.PASTE_ID, False)
             self.EnableTool(GUIFRAME_ID.PREVIEW_ID, False)
             self.EnableTool(GUIFRAME_ID.RESET_ID, False)
@@ -189,4 +212,6 @@
             self.EnableTool(GUIFRAME_ID.UNDO_ID, panel.get_undo_flag())
             self.EnableTool(GUIFRAME_ID.REDO_ID, panel.get_redo_flag())
+            self.EnableTool(GUIFRAME_ID.COPY_ID, panel.get_copy_flag())
+            self.EnableTool(GUIFRAME_ID.PASTE_ID, panel.get_paste_flag())
             self.EnableTool(GUIFRAME_ID.PREVIEW_ID, panel.get_preview_flag())
             self.EnableTool(GUIFRAME_ID.RESET_ID, panel.get_reset_flag())
@@ -203,4 +228,12 @@
         self.Realize()
         
+    def enable_copy(self, panel):
+        self.EnableTool(GUIFRAME_ID.COPY_ID, panel.get_copy_flag())
+        self.Realize()
+        
+    def enable_paste(self, panel):
+        self.EnableTool(GUIFRAME_ID.PASTE_ID, panel.get_paste_flag())
+        self.Realize() 
+            
     def enable_print(self, panel):
         self.EnableTool(GUIFRAME_ID.PRINT_ID, panel.get_print_flag())
Index: guiframe/panel_base.py
===================================================================
--- guiframe/panel_base.py	(revision 6f28e7076044477f52f45cd6777c2fcebe421df3)
+++ guiframe/panel_base.py	(revision 07c8630371039006ddb41d6fbf870df9db8fa46f)
@@ -40,4 +40,6 @@
         self._undo_flag = False
         self._redo_flag = False
+        self._copy_flag = False
+        self._paste_flag = False
         self._preview_flag = False
         self._bookmark_flag = False
@@ -126,5 +128,45 @@
         """
         return self._redo_flag
-    
+
+    def _set_copy_flag(self, flag=True):
+        """
+        The derivative class sets the copy flag value to indicate that the 
+        action done can be recovered
+        """
+        if flag == self._copy_flag:
+            self._has_changed = False
+            return
+        self._has_changed = True
+        self._copy_flag = flag
+        if self._manager is not None and self._manager.parent is not None:
+            self._manager.parent.cpanel_on_focus = self
+            self._manager.parent.enable_copy()
+      
+    def get_copy_flag(self):
+        """
+        Get the copy flag to update appropriately the tool bar
+        """
+        return self._copy_flag
+    
+    def _set_paste_flag(self, flag=True):
+        """
+        The derivative class sets the paste flag value to indicate that the 
+        action done can be recovered
+        """
+        if flag == self._paste_flag:
+            self._has_changed = False
+            return
+        self._has_changed = True
+        self._paste_flag = flag
+        if self._manager is not None and self._manager.parent is not None:
+            self._manager.parent.cpanel_on_focus = self
+            self._manager.parent.enable_paste()
+      
+    def get_paste_flag(self):
+        """
+        Get the copy flag to update appropriately the tool bar
+        """
+        return self._copy_flag
+       
     def _set_zoomed_in_flag(self, flag=True):
         """
@@ -311,4 +353,12 @@
         The current action is canceled
         """
+    def on_copy(self, event):
+        """
+        The copy action if possible
+        """
+    def on_paste(self, event):
+        """
+        The paste action if possible
+        """
     def on_bookmark(self, event):
         """
Index: sansview/perspectives/fitting/basepage.py
===================================================================
--- sansview/perspectives/fitting/basepage.py	(revision 37e0e5dbdb84006affa75e48f9dcad4a2cfae62f)
+++ sansview/perspectives/fitting/basepage.py	(revision 07c8630371039006ddb41d6fbf870df9db8fa46f)
@@ -531,4 +531,45 @@
         return new_state  
     
+    def on_copy(self, event):
+        """
+        Copy Parameter values to the clipboad
+        """
+        flag = self.get_copy()
+        if event != None:
+            event.Skip()
+        # messages depending on the flag
+        self._copy_info(flag)
+        
+    def on_paste(self, event):
+        """
+        Paste Parameter values to the panel if possible
+        """
+        flag = self.get_paste()
+        if event != None:
+            event.Skip()
+        # messages depending on the flag
+        self._copy_info(flag)
+        
+    def _copy_info(self, flag):
+        """
+        Send event dpemding on flag
+        
+        : Param flag: flag that distinguish event
+        """
+        # messages depending on the flag
+        if flag == None:
+            msg = " Parameter values are copied to the clipboard..."
+            infor = 'warning'
+        elif flag:
+            msg = " Parameter values are pasted from the clipboad..."
+            infor = "warning"
+        else:
+            msg = "Error was occured "
+            msg += ": No valid parameter values to paste from the clipboard..."
+            infor = "error"
+        # inform msg to wx
+        wx.PostEvent( self.parent.parent, 
+                      StatusEvent(status= msg, info=infor))
+        
     def _get_time_stamp(self):
         """
Index: sansview/perspectives/fitting/fitpage.py
===================================================================
--- sansview/perspectives/fitting/fitpage.py	(revision c36576573ddcec6b5fbc5697de90ec3eca2965e9)
+++ sansview/perspectives/fitting/fitpage.py	(revision 07c8630371039006ddb41d6fbf870df9db8fa46f)
@@ -56,4 +56,6 @@
         self._set_save_flag(False)
         self._set_preview_flag(False)
+        self._set_copy_flag(False)
+        self._set_paste_flag(False)
         self.btFit.SetFocus()
   
@@ -1077,4 +1079,6 @@
       
         if self.model != None:
+            self._set_copy_flag(True)
+            self._set_paste_flag(True)
             if self.data != None:
                 self._set_bookmark_flag(True)
