diff --git a/MatlabFiles/csminwel.m b/MatlabFiles/csminwel.m
index fd4c78f52ef948f1c46ebc80df794ee9cb90008d..2a954a802b4704c8ed833a8a6ca547b3ed75a0b5 100755
--- a/MatlabFiles/csminwel.m
+++ b/MatlabFiles/csminwel.m
@@ -40,7 +40,11 @@ snit=100;
 %   tailstr=[ ',P' num2str(i)  tailstr];
 %   stailstr=[' P' num2str(i) stailstr];
 %end
-f0 = eval([fcn '(x0,varargin{:})']);
+if ischar(fcn)
+	f0 = eval([fcn '(x0,varargin{:})']);
+else
+	f0 = fcn(x0,varargin{:});
+end
 %ARGLIST
 %f0 = feval(fcn,x0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13);
 % disp('first fcn in csminwel.m ----------------') % Jinill on 9/5/95
diff --git a/MatlabFiles/numgradcd.m b/MatlabFiles/numgradcd.m
index a7b6439b32a7270189240468e5668df454130d50..b922e97450231593476969233c7cfdd676563516 100755
--- a/MatlabFiles/numgradcd.m
+++ b/MatlabFiles/numgradcd.m
@@ -26,7 +26,11 @@ x0 = x0(:);
 %for i=nargin-3:-1:1
 %   tailstr=[ ',P' num2str(i)  tailstr];
 %end
-f0 = eval([fcn '(x0,varargin{:})']);
+if ischar(fcn)
+    f0 = eval([fcn '(x0,varargin{:})']);
+else
+    f0 = fcn(x0,varargin{:});
+end
 %f0 = eval([fcn '(x0' tailstr]);
 
 % ** initializations
@@ -60,8 +64,15 @@ badg=0;
 i = 0;
 while i ~= n
    i = i+1;
-   fp = eval([fcn '(argplus(:,i),varargin{:})']);
-   fm = eval([fcn '(argminus(:,i),varargin{:})']);
+   if ischar(fcn)
+       
+    fp = eval([fcn '(argplus(:,i),varargin{:})']);
+    fm = eval([fcn '(argminus(:,i),varargin{:})']);
+   else
+    
+    fp = fcn(argplus(:,i),varargin{:});
+    fm = fcn(argminus(:,i),varargin{:});   
+   end
 %    fp = eval([fcn '(argplus(:,i)' tailstr]);
 %    fm = eval([fcn '(argminus(:,i)' tailstr]);
    g0  = fp - fm;