diff --git a/share/qtvcp/screens/qtplasmac/qtplasmac_handler.py b/share/qtvcp/screens/qtplasmac/qtplasmac_handler.py
index 98abca08928..47407e48750 100644
--- a/share/qtvcp/screens/qtplasmac/qtplasmac_handler.py
+++ b/share/qtvcp/screens/qtplasmac/qtplasmac_handler.py
@@ -1,4 +1,4 @@
-VERSION = '1.236.278'
+VERSION = '1.236.279'
'''
qtplasmac_handler.py
diff --git a/share/qtvcp/screens/qtplasmac/versions.html b/share/qtvcp/screens/qtplasmac/versions.html
index 6a58fe65126..749de433bd3 100644
--- a/share/qtvcp/screens/qtplasmac/versions.html
+++ b/share/qtvcp/screens/qtplasmac/versions.html
@@ -30,25 +30,30 @@
QtPlasmaC Version History
-
v1.236.278 2023 June 26
+
v1.236.279 2023 Aug 03
- - rework-material-file-handling
- - enable-user-defined-default-material
- - rework-gcode-filter
+ - fix multi g/m codes in line in gcode filter
+
+
+
v1.236.278 2023 Jun 26
+
+ - rework material file handling
+ - enable user defined default material
+ - rework gcode filter
- make sample ngc files more consistant
-
v1.236.277 2023 June 18
+
v1.236.277 2023 Jun 18
- restyle origin_offsetview
-
v1.236.276 2023 June 15
+
v1.236.276 2023 Jun 15
- fix cut recovery z axis bump from laser
-
v1.235.276 2023 June 14
+
v1.235.276 2023 Jun 14
- change updater to only unlink qtplasmac symlink
- disable tabs by hiding them
diff --git a/src/emc/usr_intf/qtplasmac/qtplasmac_gcode.py b/src/emc/usr_intf/qtplasmac/qtplasmac_gcode.py
index 3c2cdb971ef..5b1453ace79 100755
--- a/src/emc/usr_intf/qtplasmac/qtplasmac_gcode.py
+++ b/src/emc/usr_intf/qtplasmac/qtplasmac_gcode.py
@@ -244,8 +244,17 @@ def parse_code(self, data):
if data[0] in 'XYZAB':
data = f'G{self.lastG} {data}'
# add leading 0's to G & M codes < 10
- if data[0] in 'GM' and (len(data) < 3 or not data[2].isdigit()):
- data = data[0] + '0' + data[1:]
+ tmp = ''
+ while data:
+ tmp += data[0]
+ if data[0] in 'GM' and data[1].isdigit():
+ if len(data) == 2:
+ tmp += '0'
+ elif len(data) > 2:
+ if not data[2].isdigit():
+ tmp += '0'
+ data = data[1:]
+ data = tmp
# if incremental distance mode fix overburn coordinates
if data[:3] in ['G00', 'G01'] and self.distMode == 91 and (self.oBurnX or self.oBurnY):
data = self.fix_overburn_incremental_coordinates(data)