diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c
index 214a7a74cb215c27add757569635d8bdb4096a15..85ba108ff662919ebdb7b918346917c50705ea43 100644
--- a/pd/src/g_editor.c
+++ b/pd/src/g_editor.c
@@ -5416,7 +5416,7 @@ void glob_verifyquit(void *dummy, t_floatarg f)
     else
     {
         post("Quitting Pd...");
-        glob_quit(0);
+        glob_quit(0, 0);
     }
 }
 
diff --git a/pd/src/m_glob.c b/pd/src/m_glob.c
index db6f64d6a6ad9a59c7ad3f812eb477d6af9e0457..35636d292830610de7c0030eb3355f2d373fa254 100644
--- a/pd/src/m_glob.c
+++ b/pd/src/m_glob.c
@@ -103,7 +103,8 @@ void glob_init(void)
         gensym("filename"), A_SYMBOL, A_SYMBOL, 0);
     class_addmethod(glob_pdobject, (t_method)glob_evalfile, gensym("open"),
         A_SYMBOL, A_SYMBOL, 0);
-    class_addmethod(glob_pdobject, (t_method)glob_quit, gensym("quit"), 0);
+    class_addmethod(glob_pdobject, (t_method)glob_quit, gensym("quit"),
+        A_DEFFLOAT, 0);
     class_addmethod(glob_pdobject, (t_method)glob_verifyquit,
         gensym("verifyquit"), A_DEFFLOAT, 0);
     class_addmethod(glob_pdobject, (t_method)glob_foo, gensym("foo"), A_GIMME, 0);
diff --git a/pd/src/m_imp.h b/pd/src/m_imp.h
index cffba1ffad5bd290155a60b49d62a2612fb1e931..c54267124efe27cdf18114417ffee4649132be7a 100644
--- a/pd/src/m_imp.h
+++ b/pd/src/m_imp.h
@@ -104,6 +104,6 @@ EXTERN int obj_sigoutletindex(t_object *x, int m);
 /* misc */
 EXTERN void glob_evalfile(t_pd *ignore, t_symbol *name, t_symbol *dir);
 EXTERN void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv);
-EXTERN void glob_quit(void *dummy);
+EXTERN void glob_quit(void *dummy, t_floatarg status);
 #define __m_imp_h_
 #endif /* __m_imp_h_ */
diff --git a/pd/src/s_inter.c b/pd/src/s_inter.c
index 85e9b3ddb8b1a62c266a1a4d88c590dc93c4a342..37d6ac0b69dd805037205f5e0c19dcfa27596adc 100644
--- a/pd/src/s_inter.c
+++ b/pd/src/s_inter.c
@@ -1632,7 +1632,7 @@ extern void glob_closeall(void *dummy, t_floatarg fforce);
 
 extern int do_not_redraw;
 
-void glob_quit(void *dummy)
+void glob_quit(void *dummy, t_floatarg status)
 {
     /* If we're going to try to cleanly close everything here, we should
        do the same for all open patches and that is currently not the case,
@@ -1654,6 +1654,6 @@ void glob_quit(void *dummy)
         sys_closesocket(sys_guisock);
         sys_rmpollfn(sys_guisock);
     }
-    sys_bail(0); 
+    sys_bail(status); 
 }