diff --git a/code/classes/SCDclass_algo.m b/code/classes/SCDclass_algo.m
index a95e9f1f19db6c888e6403a058001af04acc03b9..ae84a6ff2c5a500690440bd59833b9ed2f71440c 100644
--- a/code/classes/SCDclass_algo.m
+++ b/code/classes/SCDclass_algo.m
@@ -253,7 +253,13 @@ classdef SCDclass_algo
                     initcmd=sprintf('%s(obj);', initfunction);
                     value = eval(initcmd);
                   elseif isa(initfunction,'function_handle')
-                    value = initfunction(obj); % call function handle directly
+                    if nargin(initfunction)==1
+                      value = initfunction(obj); % function has an input argument
+                    elseif nargin(initfunction)==0
+                      value = initfunction(); % no input arguments
+                    else
+                      error('unexpected number of input arguments for function %s',func2str(initfunction));
+                    end
                   else
                     error('initfunction must be a string or a function handle')
                   end