diff --git a/src/@graph/writeGraphFile.m b/src/@graph/writeGraphFile.m
index a660ffe072e1aa1e2c293d3944b67d0371b5c3f6..0c0cf30027d37110b13cf1d98f10e4b4ed9541b0 100644
--- a/src/@graph/writeGraphFile.m
+++ b/src/@graph/writeGraphFile.m
@@ -39,8 +39,8 @@ if ne < 1
     return
 end
 
-if exist([rep_dir filesep o.graphDirName], 'file') ~= 7
-    mkdir([rep_dir filesep o.graphDirName])
+if exist([rep_dir filesep o.graphDirName], 'dir') ~= 7
+    mkdir([rep_dir filesep o.graphDirName]);
 end
 if isempty(o.graphName)
     graphName = sprintf([o.graphDirName filesep 'graph_pg%d_sec%d_row%d_col%d.tex'], pg, sec, row, col);
diff --git a/src/@page/write.m b/src/@page/write.m
index 63b2675538e371d1264170fe779d843ca603fed1..51e4a6addef5c105c29c637c1dcfb58227a6b166 100644
--- a/src/@page/write.m
+++ b/src/@page/write.m
@@ -42,12 +42,9 @@ end
 fprintf(fid, '\n');
 
 if ~isempty(o.latex)
-    if ~exist(o.pageDirName, 'dir')
-        mkdir(o.pageDirName)
-    end
     dir = [rep_dir filesep o.pageDirName];
-    if exist(dir, 'file') ~= 7
-        mkdir(dir)
+    if exist(dir, 'dir') ~= 7
+        mkdir(dir);
     end
     pagename = [dir filesep 'page_' num2str(pg) '.tex'];
     [fidp, msg] = fopen(pagename, 'w');
diff --git a/src/@report/write.m b/src/@report/write.m
index c4958e70b27ee39a18fff1fba7dbfc255647e33f..0707f9315a8c62fee8594a8d7d7b8cd2d36f9bb2 100644
--- a/src/@report/write.m
+++ b/src/@report/write.m
@@ -28,8 +28,8 @@ function o = write(o)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-if exist(o.directory, 'file') ~= 7
-    mkdir(o.directory)
+if exist(o.directory, 'dir') ~= 7
+    mkdir(o.directory);
 end
 [fid, msg] = fopen([o.directory filesep o.fileName], 'w');
 if fid == -1
diff --git a/src/@report_table/writeTableFile.m b/src/@report_table/writeTableFile.m
index 695b26cd684c854c49232a95d571a64527c5e6c9..bfc2a9bce8bf6a60c62bd10f44d22e932f678f09 100644
--- a/src/@report_table/writeTableFile.m
+++ b/src/@report_table/writeTableFile.m
@@ -40,8 +40,8 @@ if ne == 0 && ~is_data_table
     return
 end
 
-if exist([rep_dir filesep o.tableDirName], 'file') ~= 7
-    mkdir([rep_dir filesep o.tableDirName])
+if exist([rep_dir filesep o.tableDirName], 'dir') ~= 7
+    mkdir([rep_dir filesep o.tableDirName]);
 end
 if isempty(o.tableName)
     tableName = sprintf([o.tableDirName filesep 'table_pg%d_sec%d_row%d_col%d.tex'], pg, sec, row, col);