diff --git a/monitor.c b/monitor.c
index 3424e60..44ff994 100644
--- a/monitor.c
+++ b/monitor.c
@@ -977,7 +977,7 @@ static void do_print(Monitor *mon, const QDict *qdict)
     monitor_printf(mon, "\n");
 }
 
-static void do_memory_save(Monitor *mon, const QDict *qdict)
+static void do_memory_save(Monitor *mon, const QDict *qdict, QObject **ret_data)
 {
     FILE *f;
     uint32_t size = qdict_get_int(qdict, "size");
diff --git a/qemu-monitor.hx b/qemu-monitor.hx
index 29999c6..70b9125 100644
--- a/qemu-monitor.hx
+++ b/qemu-monitor.hx
@@ -666,7 +666,8 @@ ETEXI
         .args_type  = "val:l,size:i,filename:s",
         .params     = "addr size file",
         .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
-        .mhandler.cmd = do_memory_save,
+        .user_print = monitor_user_noop,
+        .mhandler.cmd_new = do_memory_save,
     },
 
 STEXI
