diff --git a/crpptbx/data_generic_fit_gui.m b/crpptbx/data_generic_fit_gui.m
index c50400d6202c49dde03bbd2bf373634f469778d8..74b80f58224beb5000349bbd6670e45d7eeef9b4 100644
--- a/crpptbx/data_generic_fit_gui.m
+++ b/crpptbx/data_generic_fit_gui.m
@@ -236,7 +236,7 @@ else
   gen_signals = data_gen;
 end
 handles.gen_signals = gen_signals;
-
+keyboard
 fields_avail = fieldnames(gen_signals);
 if length(fields_avail)>0
   set(handles.popup_data_left,'string',fields_avail);
diff --git a/crpptbx/generic_fit.m b/crpptbx/generic_fit.m
index 54a7f8c25cc0a861c8fb926a84774979f3b72d55..97532229c93b61cf1d84b709170cffdfb7071f82 100644
--- a/crpptbx/generic_fit.m
+++ b/crpptbx/generic_fit.m
@@ -93,7 +93,7 @@ if in_option_eff == 0
       % construct 1D array with data from data_in{idata}
       if ~isempty(it_data{idata})
 	for it=1:length(it_data{idata})
-	  jrho_data = find(data_in{idata}.x(:,it_data{idata}(it))>0 & data_in{idata}.x(:,it_data{idata}(it))<1.01);
+	  jrho_data = find(data_in{idata}.x(:,it_data{idata}(it))>0 & data_in{idata}.x(:,it_data{idata}(it))<1.01 & data_in{idata}.data(:,it_data{idata}(it))>0);
 	  if length(jrho_data)>0
 	    rhotor_data_tofit(end+1:end+length(jrho_data)) = data_in{idata}.x(jrho_data,it_data{idata}(it));
 	    xxdata_tofit(end+1:end+length(jrho_data)) = data_in{idata}.data(jrho_data,it_data{idata}(it));
@@ -110,7 +110,6 @@ if in_option_eff == 0
       gen_signals_data.(dataname).combined_data.perDt{i}.data = [];
       gen_signals_data.(dataname).combined_data.perDt{i}.error_bar = [];
       gen_signals_data.(dataname).combined_data.perDt{i}.provenance = [];
-      return
     else
       [rhoeff,irhoeff] = sort(rhotor_data_tofit);
       xxdata_tofit_eff = xxdata_tofit(irhoeff);
@@ -132,18 +131,23 @@ xxfit = [];
 dxxfitdrn = [];
 for i=1:length(gen_signals_data.(dataname).combined_data.perDt)
   rhoeff = gen_signals_data.(dataname).combined_data.perDt{i}.rho;
-  xxdata_tofit_eff = gen_signals_data.(dataname).combined_data.perDt{i}.data;
-  xxerr_tofit_eff = gen_signals_data.(dataname).combined_data.perDt{i}.error_bar;
-  xeff = [0. rhoeff];
-  yeffxx = [xxdata_tofit_eff(1) xxdata_tofit_eff];
-  erreffxx = [100.*max(xxerr_tofit_eff) xxerr_tofit_eff];
-  [xxfit(:,i),dxxfitdrn(:,i)]=interpos(xeff,yeffxx,main_rho,tension_xx_eff,[1 0],[0 0],erreffxx);
-  if doplot
-    figure(11);clf
-    errorbar(rhoeff,xxdata_tofit_eff,xxerr_tofit_eff,'*');
-    hold all
-    plot(main_rho,xxfit(:,i))
-    pause(0.01)
+  if ~isempty(rhoeff)
+    xxdata_tofit_eff = gen_signals_data.(dataname).combined_data.perDt{i}.data;
+    xxerr_tofit_eff = gen_signals_data.(dataname).combined_data.perDt{i}.error_bar;
+    xeff = [0. rhoeff];
+    yeffxx = [xxdata_tofit_eff(1) xxdata_tofit_eff];
+    erreffxx = [100.*max(xxerr_tofit_eff) xxerr_tofit_eff];
+    [xxfit(:,i),dxxfitdrn(:,i)]=interpos(xeff,yeffxx,main_rho,tension_xx_eff,[1 0],[0 0],erreffxx);
+    if doplot
+      figure(11);clf
+      errorbar(rhoeff,xxdata_tofit_eff,xxerr_tofit_eff,'*');
+      hold all
+      plot(main_rho,xxfit(:,i))
+      pause(0.01)
+    end
+  else
+    xxfit(1:nb_points,i) = NaN;
+    dxxfitdrn(1:nb_points,i) = NaN;
   end
 end