Index: sansview/perspectives/fitting/fitpage.py
===================================================================
--- sansview/perspectives/fitting/fitpage.py	(revision 3370922c49e4a289d9d88d22630dd817789efde8)
+++ sansview/perspectives/fitting/fitpage.py	(revision a8088d7f9d660fc026616f62fb4f632fd29ab93a)
@@ -644,9 +644,11 @@
         from sans.guiframe.utils import check_value
         flag = check_value( self.qmin, self.qmax)
-        err_image = self.data.err_data
+        
+        err_image = copy.deepcopy(self.data.err_data)
         if err_image==[] or err_image==None:
             err_image= numpy.zeros(len(self.data.x_bins),len(self.data.y_bins))
                        
         err_image[err_image==0]=1
+       
         res=[]
         if flag== True:
@@ -700,7 +702,8 @@
                         dy= numpy.zeros(len(y))
                     else:
-                        dy= numpy.asarray(self.data.dy)
+                        dy= copy.deepcopy(self.data.dy)
+                        dy= numpy.asarray(dy)
                     dy[dy==0]=1
-                    
+                   
                     if self.qmin_x==None and self.qmax_x==None: 
                         fx =numpy.asarray([self.model.run(v) for v in x])
@@ -723,8 +726,7 @@
                     self.tcChi.SetLabel(format_number(math.fabs(sum/ len(res))))
             except:
-                raise
-                #wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\
-                #            "Chisqr cannot be compute: %s"% sys.exc_value))
-                #return 
+                wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\
+                            "Chisqr cannot be compute: %s"% sys.exc_value))
+                return 
             
     
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision 3370922c49e4a289d9d88d22630dd817789efde8)
+++ sansview/perspectives/fitting/fitting.py	(revision a8088d7f9d660fc026616f62fb4f632fd29ab93a)
@@ -1,3 +1,3 @@
-import  re
+import  re,copy
 import sys, wx, logging
 import string, numpy, math
@@ -239,15 +239,16 @@
         dxw=None
         if hasattr(item, "dxl"):
-            dxl = item.dxl
+            dxl = copy.deepcopy(item.dxl)
         if hasattr(item, "dxw"):
-            dxw = item.dxw
+            dxw = copy.deepcopy(item.dxw)
         if hasattr(item, "detector"):
-            detector =item.detector
+            detector = copy.deepcopy(item.detector)
         if hasattr(item, "source"):
-            source =item.source
+            source = copy.deepcopy(item.source)
         if hasattr(item ,"info"):
-            info= item.info
+            info= copy.deepcopy(item.info)
         if hasattr(item,"id"):
-            id = item.id
+            id = copy.deepcopy(item.id)
+            
         from sans.guiframe import dataFitting 
         if item.__class__.__name__=="Data1D":
@@ -259,5 +260,5 @@
         data.source = source
         ## allow to highlight data when plotted
-        data.interactive = item.interactive
+        data.interactive = copy.deepcopy(item.interactive)
         ## when 2 data have the same id override the 1 st plotted
         data.id = id
@@ -266,8 +267,8 @@
         data.info= info
         ## If the data file does not tell us what the axes are, just assume...
-        data.xaxis(item._xaxis,item._xunit)
-        data.yaxis(item._yaxis,item._yunit)
+        data.xaxis(copy.deepcopy(item._xaxis),copy.deepcopy(item._xunit))
+        data.yaxis(copy.deepcopy(item._yaxis),copy.deepcopy(item._yunit))
         ##group_id specify on which panel to plot this data
-        data.group_id = item.group_id
+        data.group_id = copy.deepcopy(item.group_id)
         return data
 
@@ -559,4 +560,5 @@
         self.panel = event.GetEventObject()
         for item in self.panel.graph.plottables:
+            
             if item.name == self.panel.graph.selected_plottable:
                 ## put the errors values back to the model if the errors were hiden
@@ -567,14 +569,13 @@
                         data= self.copy_data(item, dy)
                     else:
-                        data= item
+                        data= copy.deepcopy(item)
                 else:
                     if item.dy==None:
                         dy= numpy.zeros(len(item.y))
-                        dy[dy==0]=1
                         data= self.copy_data(item, dy)
                     else:
-                        data= item
+                        data= copy.deepcopy(item)
             else:
-                data= item
+                data= copy.deepcopy(item)
             ## create anew page                   
             if item.name == self.panel.graph.selected_plottable or\
@@ -962,5 +963,5 @@
     
         err_image = numpy.zeros(numpy.shape(image))
-        err_image[err_image==0]= 1
+       
         theory= Data2D(image= image , err_image= err_image)
         theory.name= model.name
@@ -982,5 +983,5 @@
             theory.xmin= data.xmin
             theory.xmax= data.xmax
-        
+       
         ## plot
         wx.PostEvent(self.parent, NewPlotEvent(plot=theory,
