diff --git a/matlab/check_file_extension.m b/matlab/check_file_extension.m
index 63d627f0b0f3428f57695ee9999d4dad48d3b8f8..10d4c1c9b3d6c1197599d921b72dfa396f9e6c24 100644
--- a/matlab/check_file_extension.m
+++ b/matlab/check_file_extension.m
@@ -19,6 +19,10 @@ function b = check_file_extension(file,type)
 
 % AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
 
+% Clean-up path
+file = strrep(file, '../', '');
+file = strrep(file, './', '');
+
 remain = file;
 while ~isempty(remain)
     [ext, remain] = strtok(remain,'.');
diff --git a/matlab/get_file_extension.m b/matlab/get_file_extension.m
index 9f160ba0f656e246119322ce6c1be8c4c6ec9d86..56c140d838a8d845bc1f7ef040adce9080f317e1 100644
--- a/matlab/get_file_extension.m
+++ b/matlab/get_file_extension.m
@@ -28,6 +28,10 @@ function ext = get_file_extension(file)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+% Clean-up path
+file = strrep(file, '../', '');
+file = strrep(file, './', '');
+
 remain = file;
 while ~isempty(remain)
     [ext, remain] = strtok(remain,'.');
diff --git a/matlab/load_m_file_data.m b/matlab/load_m_file_data.m
index b692585834f0ff937a0400abf375ed57ad7dddde..20e1b28a77b57a1748abb9575af1db29c33e305b 100644
--- a/matlab/load_m_file_data.m
+++ b/matlab/load_m_file_data.m
@@ -36,7 +36,7 @@ function [freq,init,data,varlist,tex] = load_m_file_data(file)
 if isoctave
     run(file);
 else
-    [basename, ext] = strtok(file,'.');
+    basename = file(1:end-2);
     run(basename);
 end