diff --git a/io_curve_svg/import_svg.py b/io_curve_svg/import_svg.py
index 28f407649ed18ab025d2c3a2112be7d575b0b579..e84c9949cdbbf772631dc66e35ab318ef4444d4e 100644
--- a/io_curve_svg/import_svg.py
+++ b/io_curve_svg/import_svg.py
@@ -884,14 +884,17 @@ class SVGPathParser:
             if cmd is None:
                 raise Exception('Unknown path command: {0}' . format(code))
 
-            if cmd in {'Z', 'z'}:
+            if code in {'Z', 'z'}:
                 closed = True
             else:
                 closed = False
 
+            if code in {'M', 'm'} and self._use_fill and not closed:
+                self._pathClose('z') # Ensure closed before MoveTo path command
+
             cmd(code)
         if self._use_fill and not closed:
-            self._pathClose('z')
+            self._pathClose('z') # Ensure closed at the end of parsing
 
     def getSplines(self):
         """