diff --git a/loadjson.m b/loadjson.m
index 69811ed1223215de1d4171fe6ff98fdd268729b1..db03df3f12868ba7f8fda56298cd3de7dd3b7cd5 100644
--- a/loadjson.m
+++ b/loadjson.m
@@ -114,7 +114,7 @@ function data = loadjson(fname,varargin)
     opt.arraytoken_=arraytoken;
     opt.arraytokenidx_=arraytokenidx;
     opt.simplifycell=jsonopt('SimplifyCell',1,opt);
-    opt.simplifycellarray=jsonopt('SimplifyCellArray',0,opt);
+    opt.simplifycellarray=jsonopt('SimplifyCellArray',opt.simplifycell,opt);
     opt.formatversion=jsonopt('FormatVersion',2,opt);
     opt.fastarrayparser=jsonopt('FastArrayParser',1,opt);
     opt.parsestringarray=jsonopt('ParseStringArray',0,opt);
@@ -281,7 +281,7 @@ function [object, pos,index_esc] = parse_array(inputstr, pos, esc, index_esc, va
     end
 
     if(varargin{1}.simplifycell)
-      if(iscell(object) && ~isempty(object) && isnumeric(object{1}))
+      if(iscell(object) && ~isempty(object) && (isnumeric(object{1}) || isstruct(object{1})) )
           if(all(cellfun(@(e) isequal(size(object{1}), size(e)) , object(2:end))))
               try
                   oldobj=object;