diff --git a/pandocFilter/pandocFilter.py b/pandocFilter/pandocFilter.py
index 05a504c08761e01348d70b26d8be507bc80907c1..6adddf4ae3aa9651d7b7047ae59066ef119e2485 100644
--- a/pandocFilter/pandocFilter.py
+++ b/pandocFilter/pandocFilter.py
@@ -7,7 +7,7 @@
 #	License: BSD 3-Clause License. See the LICENSE file for further details.
 #
 
-import argparse, os, re
+import argparse, os, re, sys
 from rich import print
 from rich.progress import Progress, TextColumn, TimeElapsedColumn
 
@@ -98,11 +98,38 @@ def replaceTableCaptions(progress:Progress, mdLines:list[str]) -> list[str]:
 	return _lines
 
 
+def replaceFigureCaptions(progress:Progress, mdLines:list[str]) -> list[str]:
+	"""	Replace table captions with a pandoc table caption.
+	"""
+	_taskID = progress.add_task('[blue]Replacing figure captions', start=False, total=0)
+	# progress.update()
+	figureregex = re.compile('^\*\*(Figure .*)\*\*')
+	
+	_lines:list[str] = []
+	for line in mdLines:
+		matches = re.findall(figureregex, line)
+		if matches:
+			# Replace the previous figure markdown name with the captions
+			_idx = len(_lines) - 1
+			while _idx >= 0 and not _lines[_idx].startswith('!['):
+				_idx -= 1
+			if _idx > 0:
+				_lines[_idx] = re.sub(r'^.*?]', f'![{matches[0]}]', _lines[_idx])
+
+		else:
+			_lines.append(line)
+
+	progress.stop_task(_taskID)
+	return _lines
+
+
+
 def process(document:str, outDirectory:str) -> None:
 	with Progress(TextColumn('{task.description}'),  TimeElapsedColumn()) as progress:
 		mdLines = readMDFile(progress, document)
 		mdLines = correctTOC(progress, mdLines)
 		mdLines = replaceTableCaptions(progress, mdLines)
+		mdLines = replaceFigureCaptions(progress, mdLines)
 		writeMDFile(progress, mdLines, document, outDirectory)
 
 def main(args=None):