diff --git a/src/new/finesse/prepare_files/FT_read_maxtem_from_blocks.m b/src/new/finesse/prepare_files/FT_read_maxtem_from_blocks.m
index c20f6cf17637852029ba2480283c660fe00f6395..cad023b6b6c38089a82e6ecf84c602347280c8ca 100644
--- a/src/new/finesse/prepare_files/FT_read_maxtem_from_blocks.m
+++ b/src/new/finesse/prepare_files/FT_read_maxtem_from_blocks.m
@@ -2,7 +2,8 @@
 % function [maxtem] = FT_read_maxtem_from_blocks(blocks)
 %
 % A function for Matlab which reads the value for 'maxtem' found in blocks
-% containing FINESSE command lines.
+% containing FINESSE command lines.  If no maxtem is declared, or maxtem is
+% switched off the returned maxtem is nan.
 %
 % blocks:   Block structures containing FINEESE script lines.
 %
@@ -22,9 +23,14 @@ function [maxtem] = FT_read_maxtem_from_blocks(blocks)
         line_idx = FT_find_element_in_active_block(blocks(block_idx),1,'maxtem');
         
         % Read maxtem from line
-        maxtem = cell2mat(FT_parse_line(blocks(block_idx).txt_lines(line_idx),2));
+        maxtem = FT_parse_line(blocks(block_idx).txt_lines(line_idx),2);
+        if strcmp(maxtem{1},'off')
+            maxtem = nan;
+        else
+            maxtem = cell2mat(maxtem);
+        end
     elseif length(block_idx)==0
-        maxtem = 0;
+        maxtem = nan;
 	else
 		result=sprintf('Invalid kat file: maxtem declared more than once');
 		msgid=[baseid,'checkarguments'];