diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C b/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C
index 6ad660f76f1406b498f62f0afea668c1e7cd3bce..dc637b97ce019271a02c0d0fe36b849cec410bf1 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2019-2020 Mattijs Janssens
-    Copyright (C) 2020-2021 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -170,7 +170,7 @@ Foam::solverPerformance Foam::PPCG::scalarSolveCG
     )
     {
         // Make sure gamma,delta are available
-        if (Pstream::parRun())
+        if (Pstream::parRun() && outstandingRequest != -1)
         {
             Pstream::waitRequest(outstandingRequest);
             outstandingRequest = -1;
@@ -248,6 +248,12 @@ Foam::solverPerformance Foam::PPCG::scalarSolveCG
         matrix_.Amul(n, m, interfaceBouCoeffs_, interfaces_, cmpt);
     }
 
+    // Cleanup any outstanding requests
+    if (Pstream::parRun() && outstandingRequest != -1)
+    {
+        Pstream::waitRequest(outstandingRequest);
+    }
+
     return solverPerf;
 }