diff --git a/src/pkg/time/internal_test.go b/src/pkg/time/internal_test.go
index d9592954b24d57e0453e2387a36d0a688ffd272a..4ba6d478debac433b4307e657be6251b97bad1a7 100644
--- a/src/pkg/time/internal_test.go
+++ b/src/pkg/time/internal_test.go
@@ -78,7 +78,15 @@ func CheckRuntimeTimerOverflow() error {
 			if Now().After(stop) {
 				return errors.New("runtime timer stuck: overflow in addtimer")
 			}
-			runtime.Gosched()
+			// Issue 6874. This test previously called runtime.Gosched to try to yield
+			// to the goroutine servicing t, however the scheduler has a bias towards the
+			// previously running goroutine in an idle system. Combined with high load due
+			// to all CPUs busy running tests t's goroutine could be delayed beyond the
+			// timeout window.
+			//
+			// Calling runtime.GC() reduces the worst case lantency for scheduling t by 20x
+			// under the current Go 1.3 scheduler.
+			runtime.GC()
 		}
 	}
 }
diff --git a/src/pkg/time/sleep_test.go b/src/pkg/time/sleep_test.go
index 46872595094e97a4d06a8b93c6a63ab751932005..23cb3daebbf35493cb8fcc7bb0de97c39d26943c 100644
--- a/src/pkg/time/sleep_test.go
+++ b/src/pkg/time/sleep_test.go
@@ -398,6 +398,9 @@ func TestIssue5745(t *testing.T) {
 }
 
 func TestOverflowRuntimeTimer(t *testing.T) {
+	if testing.Short() {
+		t.Skip("skipping in short mode, see issue 6874")
+	}
 	if err := CheckRuntimeTimerOverflow(); err != nil {
 		t.Fatalf(err.Error())
 	}