diff --git a/gstlal-inspiral/share/O3/O3_chunks b/gstlal-inspiral/share/O3/O3_chunks
index 4a3975f348cd23c144f183aedbef1845955995d5..5c3a7baaf4debe01a99ac21a4064cd03a66ea16e 100755
--- a/gstlal-inspiral/share/O3/O3_chunks
+++ b/gstlal-inspiral/share/O3/O3_chunks
@@ -81,6 +81,9 @@ for ifo1 in ifos:
 		except KeyError:
 			doublesegs[ifo1] = seglistdicts.intersection((ifo1, ifo2))
 
+
+# This is the set of segments when at least two ifos were on
+doublesegsunion = doublesegs.union(doublesegs.keys())
 # This is the set of segments when at least one ifo was on
 segs = seglistdicts.union(seglistdicts.keys())
 
@@ -93,7 +96,11 @@ def enoughtime(seglist, start, end):
 # that we only define boundaries when *no* ifos are on
 # 2000000000 is a placeholder to define a segment end.  
 chunks = segments.segmentlist([segments.segment(segs[0][0], 2000000000)])
-for seg in segs:
+
+# This places boundaries when only one ifo or less was on
+for seg in doublesegsunion:
+# this line would only take boundaries when no ifo was on
+#for seg in segs:
 	start = seg[0]
 	end = seg[1]
 	if all([enoughtime(s, chunks[-1][0], end) for s in doublesegs.values()]):