Index: /status
===================================================================
--- /status (revision 633)
+++ /status (revision 634)
@@ -4,5 +4,5 @@
 grabber         abc_website         2.11
 grabber         abc2_website        2.11
-grabber         sbsnews_website     0.11
+grabber         sbsnews_website     0.12
 grabber         oztivo              0.23
 grabber         jrobbo              0.09
Index: /grabbers/sbsnews_website
===================================================================
--- /grabbers/sbsnews_website (revision 614)
+++ /grabbers/sbsnews_website (revision 634)
@@ -15,5 +15,5 @@
 
 my $progname = "sbsnews_website";
-my $version = "0.11";
+my $version = "0.12";
 
 use LWP::UserAgent;
@@ -377,5 +377,5 @@
 			if ($diff / 60 > 50 and ((localtime($prev_start))[2] < 7)) {
 				my $last_stop = $tv_guide->{$prog}->{stoptime};
-				my $prog = { title => [[ 'Station Close', $opt->{lang} ]],
+				my $newprog = { title => [[ 'Station Close', $opt->{lang} ]],
 				             channel => $channels->{'SBS News'},
 					     starttime => $last_stop,
@@ -383,14 +383,28 @@
 					     daynum => $tv_guide->{$prog}->{daynum} };
 				&log(sprintf "Inserting Station Close: %s to %s.",
-					     &nice_time($prog->{starttime}),
-					     &nice_time($prog->{stoptime})) if ($opt->{debug});
-				$tv_guide->{$last_stop} = $prog;
+					     &nice_time($newprog->{starttime}),
+					     &nice_time($newprog->{stoptime}));
+				$tv_guide->{$last_stop} = $newprog;
 
 			# Gaps of 15+ minutes in other times are genuine holes
+			# If the gap is a weekday, fill it with whatever was in
+			# that timeslot tommorow (we have Monday holes for some reason)
 			} elsif ($diff / 60 > 15) {
-				&log(sprintf "Not extending stop time of \"%s\": gap too large (%d mins) (ends at %s)",
+				my $wday = (localtime($prev_start))[6];
+				if ($wday > 0 and $wday < 5 and $tv_guide->{$prog + 86400}) {
+					my $hole_start = $tv_guide->{$prog}->{stoptime};
+					my $newprog = { %{$tv_guide->{$hole_start + 86400}}};
+					$newprog->{starttime} -= 86400;
+					$newprog->{stoptime} -= 86400;
+					my $last_stop = $tv_guide->{$prog}->{stoptime};
+					&log(sprintf "Filling weekday gap (%s) with next day's schedule (\"%s\").",
+					    &nice_time($hole_start), $newprog->{title}[0][0]);
+					$tv_guide->{$last_stop} = $newprog;
+				} else {
+					&log(sprintf "Not extending stop time of \"%s\": gap too large (%d mins) (ends at %s)",
 					     $tv_guide->{$prog}->{title}[0][0], 
 					     $diff/60,
-					     &nice_time($tv_guide->{$prog}->{stoptime})) if ($opt->{debug});
+					     &nice_time($tv_guide->{$prog}->{stoptime}));
+				}
 
 			# Gaps of <15 minutes shall be filled in
