diff --git a/algo/unpack/Unpack.cxx b/algo/unpack/Unpack.cxx
index 668de3d834e6edf7ff6f25dc82af335a5f557377..b9560675b5bfb480bdf09d55779ef057499b8efd 100644
--- a/algo/unpack/Unpack.cxx
+++ b/algo/unpack/Unpack.cxx
@@ -184,8 +184,17 @@ namespace cbm::algo
     std::vector<fles::MicrosliceDescriptor> msDesc;  // microslice descriptors
     std::vector<const u8*> msContent;                // pointer to microslice content
     auto legalEqIds = GetEqIds(algos);
-    auto [numMs, sizeBytes] =
+
+    //    Workaround a problem for some clang versions
+    //    Capturing structured bindings either is avaialable with C++20
+    //    Obviously GCC supports it already and has no problems but clang or at
+    //    least some clang versions fail during compilation
+    //    auto [numMs, sizeBytes] =
+    //      ParallelInit(ts, subsystem, gsl::make_span(legalEqIds), sys_ver, genericMonitor, msEqIds, msDesc, msContent);
+    std::pair<size_t, size_t> tmp =
       ParallelInit(ts, subsystem, gsl::make_span(legalEqIds), sys_ver, genericMonitor, msEqIds, msDesc, msContent);
+    auto numMs     = tmp.first;
+    auto sizeBytes = tmp.second;
     std::vector<std::vector<Digi>> msDigis(numMs);  // unpacked digis per microslice
     std::vector<Monitor> monitor(numMs);            // unpacking monitoring data per microslice