diff --git a/unix/main.c b/unix/main.c
index a463d2e10a65e6450852bf4eaeb08332d0825061..17423de4d1f2dc9b0c6fb9bd074a041ccfe64521 100644
--- a/unix/main.c
+++ b/unix/main.c
@@ -351,12 +351,20 @@ STATIC void pre_process_options(int argc, char **argv) {
                         heap_size *= 1024;
                     } else if ((*end | 0x20) == 'm') {
                         heap_size *= 1024 * 1024;
+                    } else {
+                        // Compensate for ++ below
+                        --end;
+                    }
+                    if (*++end != 0) {
+                        goto invalid_arg;
                     }
                     if (word_adjust) {
                         heap_size = heap_size * BYTES_PER_WORD / 4;
                     }
 #endif
                 } else {
+invalid_arg:
+                    printf("Invalid option\n");
                     exit(usage(argv));
                 }
                 a++;