diff --git a/precision_drawing_tools/pdt_command.py b/precision_drawing_tools/pdt_command.py
index 2ed6d57d75fc4a2e9a9404dfea8bd3c4fe1a6aaa..e2c4c5dc63b69984669305212e16ca12ef88dc45 100644
--- a/precision_drawing_tools/pdt_command.py
+++ b/precision_drawing_tools/pdt_command.py
@@ -149,7 +149,7 @@ def command_run(self, context):
 
     # Check Object Type & Mode First
     obj = context.view_layer.objects.active
-    if obj is not None:
+    if obj is not None and command[0].upper() not in {"M", "?", "HELP"}:
         if obj.mode not in {"OBJECT", "EDIT"} or obj.type != "MESH":
             pg.error = PDT_OBJ_MODE_ERROR
             context.window_manager.popup_menu(oops, title="Error", icon="ERROR")
@@ -439,7 +439,11 @@ def command_parse(context):
     if mode_sel == 'REL' and operation not in {"C", "P"}:
         pg.select = 'SEL'
 
-    if mode_sel == 'SEL' and mode not in {"a"}:
+    if (
+        (mode_sel == 'SEL' and mode not in {"a"})
+        or
+        (mode == "a" and operation not in {"C", "P"})
+        ):
         bm, good = obj_check(obj, scene, operation)
         if good and obj.mode == 'EDIT':
             obj_loc = obj.matrix_world.decompose()[0]