diff --git a/arfit.m b/arfit.m
index 9ca2b7a8373790c9f75e3bcb02b43ee9dd8fbf4d..7ae7e616837428a2bddafa2966565d5875f70d76 100644
--- a/arfit.m
+++ b/arfit.m
@@ -23,7 +23,7 @@ function varargout=arfit(varargin)
 %             end
 %             arfit(x,10)
 
-% Copyright (c) 2002-2006 by AMRON
+% Copyright (c) 2002-2007 by AMRON
 % Norbert Marwan, Potsdam University, Germany
 % http://www.agnld.uni-potsdam.de
 %
@@ -31,6 +31,9 @@ function varargout=arfit(varargin)
 % $Revision$
 %
 % $Log$
+% Revision 2.5  2006/02/14 11:45:49  marwan
+% *** empty log message ***
+%
 % Revision 2.4  2005/03/16 11:19:02  marwan
 % help text modified
 %
@@ -211,7 +214,7 @@ switch(action)
             'Tag','text',...
 	    'String','Uni Potsdam',...
             'Position',[66 2 22  3.5714]);    
-  h2=textwrap(h,{[char(169),' AGNLD'],'University of Potsdam','2002-2006'});
+  h2=textwrap(h,{[char(169),' AGNLD'],'University of Potsdam','2002-2007'});
   set(h,'String',h2)
 
 %%%%% data and model axes
@@ -251,7 +254,7 @@ switch(action)
   set(h,'Position',[66.3333 25.1429-.33 pos(3) pos(4)])    
   h=axes('NextPlot','add');    
   for k=1:5,
-    h2=plot(0,0,'Tag',['criteria_line',num2str(k)],'Visible','off',props.criteria_line(k));
+      h2=plot(0,0,'Tag',['criteria_line',num2str(k)],'Visible','off',props.criteria_line(k));
   end
   set(h,props.axes,...
             'Tag','criteria_axes',...
@@ -435,8 +438,9 @@ switch(action)
   case 'criteria'
 
     set(h_fig,'CurrentAxes',h_criteria_axes)
-    h=findobj('Tag','significance_line','Parent',h_criteria_axes);
+    h=findobj('Tag','significance_line1','Parent',h_criteria_axes);
     signif=get(h,'UserData');
+
     for k=1:length(noshow_crit)
        h=findobj('Tag',['criteria_line',num2str(noshow_crit(k))],'Parent',h_criteria_axes);
        if ~isempty(h)
@@ -447,7 +451,8 @@ switch(action)
       for k=1:length(show_crit)
          h=findobj('Tag',['criteria_line',num2str(show_crit(k))],'Parent',h_criteria_axes);
          if isempty(h)
-            h=plot(1:maxm,crit(:,show_crit(k)));
+            h=plot(1:maxm,crit(:,show_crit(k)), 'Tag',['criteria_line',num2str(show_crit(k))]);
+            
             set(h,'Parent',h_criteria_axes,'Tag','criteria_line',props.criteria_line(k),'Visible','On')
             set(h_criteria_axes,props.axes,...
                        'YTickLabel',[],...
@@ -461,19 +466,44 @@ switch(action)
 	 end
       end
       
-      h=findobj('Tag','significance_line','Parent',h_criteria_axes);
+      % significance line for PACF
+      h=findobj('Tag','significance_line1','Parent',h_criteria_axes);
+      if isempty(h)
+        h=line([1 maxm],[signif(1) signif(1)])
+        set(h,props.criteria_line(6),...
+	         'Parent',h_criteria_axes,...
+		     'LineWidth',2,...
+	         'Tag','significance_line1',...
+             'Color', props.criteria_line(2).Color, ...
+	         'Visible','Off')
+      else
+        set(h,'YData',[signif(1) signif(1)],...
+	      'XData',[1 maxm],...
+	      'Visible','Off')
+      end
+    
+      if strcmpi(get(findobj('Tag','criteria_line2','Parent',h_criteria_axes),'Visible'),'on')
+         set(h,'Visible','On')
+      else
+         set(h,'Visible','Off')
+      end
+      
+      % significance line for Q criterion
+      h=findobj('Tag','significance_line2','Parent',h_criteria_axes);
       if isempty(h)
-        h=line([1 maxm],[signif signif]);
+        h=line([1 maxm],[signif(2) signif(2)]);
         set(h,props.criteria_line(6),...
 	         'Parent',h_criteria_axes,...
-		 'LineWidth',2,...
-	         'Tag','significance_line',...
+		     'LineWidth',2,...
+             'Color', props.criteria_line(5).Color, ...
+	         'Tag','significance_line2',...
 	         'Visible','Off')
       else
-        set(h,'YData',[signif signif],...
+        set(h,'YData',[signif(2) signif(2)],...
 	      'XData',[1 maxm],...
 	      'Visible','Off')
       end
+    
       if strcmpi(get(findobj('Tag','criteria_line5','Parent',h_criteria_axes),'Visible'),'on')
          set(h,'Visible','On')
       else
@@ -548,7 +578,8 @@ switch(action)
   % varianz
   for p=1:maxm;
     l=1:p;
-    V(p)=C(1)-sum(a(p+1,l+1).*C(l+1));
+%    V(p)=C(1)-sum(a(p+1,l+1).*C(l+1));
+    V(p)=C(1)-sum(a(p+1,l+1).^l .*C(l+1));
   end
   
   % criterias: 1 - residues variance 
@@ -566,23 +597,27 @@ switch(action)
      y=filter([0 a(m+1,(1:m)+1)],1,x);
     epsilon=(x-y);
     epsilon_mean=mean(epsilon(m:end));
-%    sigma=sum(epsilon.^2)/(N);
     sigma=var(epsilon);
-%    sigma=mean((x-mean(x)).*(y-mean(y)).^2);
     clear rho
     for k=1:25;
       i=m+1:N-k-1;
       rho(k)=sum((epsilon(i+1)-epsilon_mean).*(epsilon(i+k+1)-epsilon_mean))/sum((epsilon(i+1)-epsilon_mean).^2);
     end
-    crit(m,1)=sigma;
-    crit(m,2)=a(m+1,m+1);
-    crit(m,3)=log(sigma)+2*(m+1)/(N);
-    crit(m,4)=log(sigma)+(m+1)*log(N)/(N);
+    crit(m,1)=sigma; % Variance of the residues
+    crit(m,2)=abs(a(m+1,m+1)); % PACF
+    crit(m,3)=log(sigma)+2*(m)/(N); % AIC
+    crit(m,4)=log(sigma)+(m)*log(N)/(N); % BIC
 %    crit(m,5)=log(sigma)+2*(m+1)*5*log(log(N-m))/(N-m);
     crit(m,5)=N*sum(rho.^2);
+    
   end
-  signif=30/(max(crit(:,5))-min(crit(:,5))); % significance level for the Q criterion
+%  signif(1)=1.96 * std(diag(a(2:end,2:end))) / (max(crit(:,2))-min(crit(:,2))); % significance level for the PACF criterion
+  signif(1)=1.96 * sqrt(1/N) / (max(crit(:,2))-min(crit(:,2))); % significance level for the PACF criterion
+  signif(2)=30/(max(crit(:,5))-min(crit(:,5))); % significance level for the Q criterion
+
   for k=1:size(crit,2);crit(:,k)=(crit(:,k)-min(crit(:,k)))/(max(crit(:,k))-min(crit(:,k)));end
+
+  
   y=make_model(a(2:end,2:end),V,in_m,N);
   
 %%%% graphical output
@@ -633,18 +668,44 @@ switch(action)
 	         'XData',[1:size(crit,1)],...
 	         'Visible','On')
         end
+    end
+    
+      % significance line for PACF criterion
+      h=findobj('Tag','significance_line1','Parent',h_criteria_axes);
+      if isempty(h)
+        h=line([1 maxm],[signif(1) signif(1)]);
+        set(h,props.criteria_line(6),...
+	         'Parent',h_criteria_axes,...
+	         'Tag','significance_line1',...
+             'Color', props.criteria_line(2).Color, ...
+	         'UserData',signif,...
+             'LineWidth',2,...
+	         'Visible','Off')
+      else
+        set(h,'YData',[signif(1) signif(1)],...
+	      'XData',[1 maxm],...
+	      'UserData',signif,...
+	      'Visible','Off')
       end
-      h=findobj('Tag','significance_line','Parent',h_criteria_axes);
+      if strcmpi(get(findobj('Tag','criteria_line2','Parent',h_criteria_axes),'Visible'),'on')
+         set(h,'Visible','On')
+      else
+         set(h,'Visible','Off')
+      end
+    
+      % significance line for Q criterion
+      h=findobj('Tag','significance_line2','Parent',h_criteria_axes);
       if isempty(h)
-        h=line([1 maxm],[signif signif]);
+        h=line([1 maxm],[signif(2) signif(2)]);
         set(h,props.criteria_line(6),...
 	         'Parent',h_criteria_axes,...
-	         'Tag','significance_line',...
-		 'UserData',signif,...
-		 'LineWidth',2,...
+	         'Tag','significance_line2',...
+	         'UserData',signif,...
+             'Color', props.criteria_line(5).Color, ...
+             'LineWidth',2,...
 	         'Visible','Off')
       else
-        set(h,'YData',[signif signif],...
+        set(h,'YData',[signif(2) signif(2)],...
 	      'XData',[1 maxm],...
 	      'UserData',signif,...
 	      'Visible','Off')
@@ -654,11 +715,12 @@ switch(action)
       else
          set(h,'Visible','Off')
       end
+     
       set(h_criteria_axes,props.axes,...
-               'Tag','criteria_axes',...
+           'Tag','criteria_axes',...
 	       'YTickLabel',[],...
-               'Xlim',[1 maxm],...
-               'Ylim',[0 1],...
+           'Xlim',[1 maxm],...
+           'Ylim',[0 1],...
 	       'UserData',crit,...
 	       'Units','Norm',...
 	       'NextPlot','add')