diff --git a/src/BOPAlgo/BOPAlgo_BuilderFace.cxx b/src/BOPAlgo/BOPAlgo_BuilderFace.cxx
index 19885937d7..0f3492ed00 100644
--- a/src/BOPAlgo/BOPAlgo_BuilderFace.cxx
+++ b/src/BOPAlgo/BOPAlgo_BuilderFace.cxx
@@ -434,6 +434,7 @@ void BOPAlgo_BuilderFace::PerformLoops()
         }//for (; aIt.More(); aIt.Next()) { 
       }//for (; aItE.More(); aItE.Next()) {
     }//for (; aItW.More(); aItW.Next()) {
+    aW.Closed(BRep_Tool::IsClosed(aW));
     myLoopsInternal.Append(aW);
   }//for (i = 1; (i <= aNbEA) && bFlag; ++i) {
 }
@@ -804,6 +805,7 @@ void MakeInternalWires(const BOPCol_IndexedMapOfShape& theME,
         }
       }
     }
+    aW.Closed(BRep_Tool::IsClosed(aW));
     theWires.Append(aW);
   }
 }
diff --git a/src/BOPAlgo/BOPAlgo_Builder_1.cxx b/src/BOPAlgo/BOPAlgo_Builder_1.cxx
index bc7716ed81..0801e1a7e9 100644
--- a/src/BOPAlgo/BOPAlgo_Builder_1.cxx
+++ b/src/BOPAlgo/BOPAlgo_Builder_1.cxx
@@ -28,6 +28,7 @@
 #include <BOPDS_VectorOfListOfPaveBlock.hxx>
 #include <BOPTools_AlgoTools.hxx>
 #include <BRep_Builder.hxx>
+#include <BRep_Tool.hxx>
 #include <IntTools_Context.hxx>
 #include <TopAbs_ShapeEnum.hxx>
 #include <TopoDS_Iterator.hxx>
@@ -239,6 +240,8 @@
     }
   }
   //
+  aCIm.Closed(BRep_Tool::IsClosed(aCIm));
+  //
   BOPCol_ListOfShape aLSIm(myAllocator);
   aLSIm.Append(aCIm);
   myImages.Bind(theS, aLSIm); 
diff --git a/src/BOPAlgo/BOPAlgo_WireSplitter.lxx b/src/BOPAlgo/BOPAlgo_WireSplitter.lxx
index 01fa726fb8..d3481e7619 100644
--- a/src/BOPAlgo/BOPAlgo_WireSplitter.lxx
+++ b/src/BOPAlgo/BOPAlgo_WireSplitter.lxx
@@ -13,6 +13,7 @@
 // commercial license or contractual agreement.
 
 #include <BRep_Builder.hxx>
+#include <BRep_Tool.hxx>
 
 #include <TopoDS_Edge.hxx>
 
@@ -85,7 +86,7 @@ typedef NCollection_IndexedDataMap<TopoDS_Shape, \
 //purpose  : 
 //=======================================================================
   inline void BOPAlgo_WireSplitter::MakeWire(BOPCol_ListOfShape& aLE, 
-					     TopoDS_Wire& aWire)
+                                             TopoDS_Wire& aWire)
 {
   BRep_Builder aBB;
   aBB.MakeWire(aWire);
@@ -94,4 +95,5 @@ typedef NCollection_IndexedDataMap<TopoDS_Shape, \
   for (; aIt.More(); aIt.Next()){
     aBB.Add(aWire, aIt.Value());
   }
+  aWire.Closed(BRep_Tool::IsClosed(aWire));
 }
diff --git a/tests/bugs/modalg_6/bug26420_1 b/tests/bugs/modalg_6/bug26420_1
new file mode 100644
index 0000000000..07c44da656
--- /dev/null
+++ b/tests/bugs/modalg_6/bug26420_1
@@ -0,0 +1,21 @@
+puts "========"
+puts "OCC26420"
+puts "========"
+puts ""
+######################################################
+# BOPAlgo_Builder resets "Closed" flag in the result
+######################################################
+
+polyline pp 0 4 0 7 4 0 7 6 0 0 6 0 0 4 0
+vertex v0 5 4 0
+vertex v1 4 6 0
+bclearobjects
+bcleartools
+baddobjects v0 v1 pp
+bfillds
+bbuild r
+explode r w
+set bug_info [whatis r_1]
+if {[lindex $bug_info 8] != "Closed"} {
+  puts "ERROR: OCC26420 is reproduced. Flag CLOSED is not set."
+}
diff --git a/tests/bugs/modalg_6/bug26420_2 b/tests/bugs/modalg_6/bug26420_2
new file mode 100644
index 0000000000..dda0d805ad
--- /dev/null
+++ b/tests/bugs/modalg_6/bug26420_2
@@ -0,0 +1,22 @@
+puts "========"
+puts "OCC26420"
+puts "========"
+puts ""
+######################################################
+# BOPAlgo_Builder resets "Closed" flag in the result
+######################################################
+
+polyline pp 0 4 0 7 4 0 7 6 0 0 6 0 0 4 0
+mkplane ff pp
+vertex v0 5 4 0
+vertex v1 4 6 0
+bclearobjects
+bcleartools
+baddobjects v0 v1 ff
+bfillds
+bbuild r
+explode r w
+set bug_info [whatis r_1]
+if {[lindex $bug_info 8] != "Closed"} {
+  puts "ERROR: OCC26420 is reproduced. Flag CLOSED is not set."
+}
diff --git a/tests/bugs/modalg_6/bug26420_3 b/tests/bugs/modalg_6/bug26420_3
new file mode 100644
index 0000000000..5c06f269e7
--- /dev/null
+++ b/tests/bugs/modalg_6/bug26420_3
@@ -0,0 +1,20 @@
+puts "========"
+puts "OCC26420"
+puts "========"
+puts ""
+######################################################
+# BOPAlgo_Builder resets "Closed" flag in the result
+######################################################
+
+box bb 0 0 0 5 5 5
+explode bb sh
+polyline pp -1 -1 2 -1 6 2 6 6 2 6 -1 2 -1 -1 2
+mkplane pl pp
+baddobjects pl bb_1
+bfillds
+bbuild r
+explode r sh
+set bug_info [whatis r_1]
+if {[lindex $bug_info 8] != "Closed"} {
+  puts "ERROR: OCC26420 is reproduced. Flag CLOSED is not set."
+}