diff --git a/src/calibre/ebooks/conversion/utils.py b/src/calibre/ebooks/conversion/utils.py
index 91141af1d1..f154764515 100644
--- a/src/calibre/ebooks/conversion/utils.py
+++ b/src/calibre/ebooks/conversion/utils.py
@@ -527,11 +527,17 @@ class HeuristicProcessor(object):
if re.findall('(<|>)', replacement_break):
if re.match('^
\d+).*', '\g', replacement_break))
- replacement_break = re.sub('(?i)(width=\d+\%?|width:\s*\d+(\%|px|pt|em)?;?)', '', replacement_break)
- divpercent = (100 - width) / 2
- hr_open = re.sub('45', str(divpercent), hr_open)
- scene_break = hr_open+replacement_break+''
+ try:
+ width = int(re.sub('.*?width(:|=)(?P\d+).*', '\g', replacement_break))
+ except:
+ scene_break = hr_open+'
'
+ self.log.warn('Invalid replacement scene break'
+ ' expression, using default')
+ else:
+ replacement_break = re.sub('(?i)(width=\d+\%?|width:\s*\d+(\%|px|pt|em)?;?)', '', replacement_break)
+ divpercent = (100 - width) / 2
+ hr_open = re.sub('45', str(divpercent), hr_open)
+ scene_break = hr_open+replacement_break+''
else:
scene_break = hr_open+'
'
elif re.match('^![]()