diff --git a/NumLib/DOF/DOFTableUtil.cpp b/NumLib/DOF/DOFTableUtil.cpp
index 721965756088c6e120efb295fae657818db95760..8168e07625a66caa5ca6b9eb267a34f122c7c0d6 100644
--- a/NumLib/DOF/DOFTableUtil.cpp
+++ b/NumLib/DOF/DOFTableUtil.cpp
@@ -36,7 +36,12 @@ double norm(GlobalVector const& x, unsigned const global_component,
         }
     }
 
-    // TODO for PETSc some global accumulation is necessary.
+#ifdef USE_PETSC
+    double global_result = 0.0;
+    MPI_Allreduce(&res, &global_result, 1, MPI_DOUBLE, MPI_SUM,
+                  PETSC_COMM_WORLD);
+    res = global_result;
+#endif
     return res;
 }