Merge.
diff --git a/Lib/compileall.py b/Lib/compileall.py
index d3cff6a..693eda9 100644
--- a/Lib/compileall.py
+++ b/Lib/compileall.py
@@ -228,7 +228,8 @@
                         success = False
             return success
         else:
-            return compile_path(legacy=args.legacy)
+            return compile_path(legacy=args.legacy, force=args.force,
+                                quiet=args.quiet)
     except KeyboardInterrupt:
         print("\n[interrupted]")
         return False
diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py
index fddb538..0505c52 100644
--- a/Lib/test/test_compileall.py
+++ b/Lib/test/test_compileall.py
@@ -177,6 +177,29 @@
         self.assertNotCompiled(self.initfn)
         self.assertNotCompiled(self.barfn)
 
+    def test_no_args_respects_force_flag(self):
+        bazfn = script_helper.make_script(self.directory, 'baz', '')
+        self.assertRunOK(PYTHONPATH=self.directory)
+        pycpath = imp.cache_from_source(bazfn)
+        # Set atime/mtime backward to avoid file timestamp resolution issues
+        os.utime(pycpath, (time.time()-60,)*2)
+        mtime = os.stat(pycpath).st_mtime
+        # Without force, no recompilation
+        self.assertRunOK(PYTHONPATH=self.directory)
+        mtime2 = os.stat(pycpath).st_mtime
+        self.assertEqual(mtime, mtime2)
+        # Now force it.
+        self.assertRunOK('-f', PYTHONPATH=self.directory)
+        mtime2 = os.stat(pycpath).st_mtime
+        self.assertNotEqual(mtime, mtime2)
+
+    def test_no_args_respects_quiet_flag(self):
+        script_helper.make_script(self.directory, 'baz', '')
+        noisy = self.assertRunOK(PYTHONPATH=self.directory)
+        self.assertIn(b'Listing ', noisy)
+        quiet = self.assertRunOK('-q', PYTHONPATH=self.directory)
+        self.assertNotIn(b'Listing ', quiet)
+
     # Ensure that the default behavior of compileall's CLI is to create
     # PEP 3147 pyc/pyo files.
     for name, ext, switch in [
diff --git a/Misc/NEWS b/Misc/NEWS
index 60e741f..73625f3 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -29,6 +29,9 @@
 Library
 -------
 
+- Issue #19532: python -m compileall with no filename/directory arguments now
+  respects the -f and -q flags instead of ignoring them.
+
 - Issue #19623: Fixed writing to unseekable files in the aifc module.
 
 - Issue #17919: select.poll.register() again works with poll.POLLNVAL on AIX.
diff --git a/Modules/_decimal/libmpdec/mpdecimal.c b/Modules/_decimal/libmpdec/mpdecimal.c
index 05fd04d..21d2222 100644
--- a/Modules/_decimal/libmpdec/mpdecimal.c
+++ b/Modules/_decimal/libmpdec/mpdecimal.c
@@ -4421,21 +4421,22 @@
          const mpd_context_t *ctx, uint32_t *status)
 {
     uint32_t workstatus = 0;
-    const mpd_t *cc = c;
+    mpd_t *cc = NULL;
 
     if (result == c) {
         if ((cc = mpd_qncopy(c)) == NULL) {
             mpd_seterror(result, MPD_Malloc_error, status);
             return;
         }
+        c = cc;
     }
 
     _mpd_qmul(result, a, b, ctx, &workstatus);
     if (!(workstatus&MPD_Invalid_operation)) {
-        mpd_qadd(result, result, cc, ctx, &workstatus);
+        mpd_qadd(result, result, c, ctx, &workstatus);
     }
 
-    if (cc != c) mpd_del((mpd_t *)cc);
+    if (cc) mpd_del(cc);
     *status |= workstatus;
 }