diff --git a/drd/tests/annotate_smart_pointer.cpp b/drd/tests/annotate_smart_pointer.cpp
index af085b5..cf6e6ac 100755
--- a/drd/tests/annotate_smart_pointer.cpp
+++ b/drd/tests/annotate_smart_pointer.cpp
@@ -305,7 +305,6 @@
 
 int main(int argc, char** argv)
 {
-  struct timespec delay = { 0, 100 * 1000 * 1000 };
   const int nthreads = std::max(argc > 1 ? atoi(argv[1]) : 1, 1);
   const int iterations = std::max(argc > 2 ? atoi(argv[2]) : 1, 1);
   s_enable_annotations = argc > 3 ? !!atoi(argv[3]) : true;
@@ -319,7 +318,6 @@
     for (int i = 0; i < nthreads; ++i)
       T[i].Create(thread_func, new smart_ptr<counter>(p));
     p = NULL;
-    nanosleep(&delay, 0);
     for (int i = 0; i < nthreads; ++i)
       T[i].Join();
   }
diff --git a/drd/tests/atomic_var.c b/drd/tests/atomic_var.c
index 4bedebd..40f1566 100644
--- a/drd/tests/atomic_var.c
+++ b/drd/tests/atomic_var.c
@@ -53,13 +53,11 @@
 {
   int i;
   const int n_threads = 2;
-  const struct timespec delay = { 0, 100 * 1000 * 1000 };
   pthread_t tid[n_threads];
 
   fprintf(stderr, "Start of test.\n");
   pthread_create(&tid[0], 0, thread_func_1, 0);
   pthread_create(&tid[1], 0, thread_func_2, 0);
-  nanosleep(&delay, 0);
   for (i = 0; i < n_threads; i++)
     pthread_join(tid[i], 0);
   fprintf(stderr, "Test finished.\n");
diff --git a/drd/tests/pth_barrier.c b/drd/tests/pth_barrier.c
index 98fc547..e0b40a7 100644
--- a/drd/tests/pth_barrier.c
+++ b/drd/tests/pth_barrier.c
@@ -64,7 +64,6 @@
 static void barriers_and_races(const int nthread, const int iterations)
 {
   int i;
-  const struct timespec delay = { 0, 100 * 1000 * 1000 };
   struct threadinfo* t;
   pthread_barrier_t b;
   int* array;
@@ -85,8 +84,6 @@
     pthread_create(&t[i].tid, 0, (void*(*)(void*))threadfunc, &t[i]);
   }
 
-  nanosleep(&delay, 0);
-
   for (i = 0; i < nthread; i++)
   {
     pthread_join(t[i].tid, 0);
diff --git a/drd/tests/tc19_shadowmem.vgtest b/drd/tests/tc19_shadowmem.vgtest
index 35cf997..cf2542d 100644
--- a/drd/tests/tc19_shadowmem.vgtest
+++ b/drd/tests/tc19_shadowmem.vgtest
@@ -1,4 +1,4 @@
-prereq: false && ./supported_libpthread
+prereq: ./supported_libpthread
 prog: ../../helgrind/tests/tc19_shadowmem
 vgopts: --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3
 stderr_filter: filter_stderr_and_thread_no
diff --git a/helgrind/tests/hg04_race.c b/helgrind/tests/hg04_race.c
index 3b23f8f..111195b 100644
--- a/helgrind/tests/hg04_race.c
+++ b/helgrind/tests/hg04_race.c
@@ -14,15 +14,12 @@
 
 int main()
 {
-	const struct timespec delay = { 0, 100 * 1000 * 1000 };
 	pthread_t a, b;
 
 	pthread_create(&a, NULL, th, NULL);	
-	nanosleep(&delay, 0);	/* force ordering */
+	sleep(1);		/* force ordering */
 	pthread_create(&b, NULL, th, NULL);
 
-	nanosleep(&delay, 0);	/* avoid false ordering between threads */
-
 	pthread_join(a, NULL);
 	pthread_join(b, NULL);
 
diff --git a/helgrind/tests/tc08_hbl2.c b/helgrind/tests/tc08_hbl2.c
index ae0083e..9c05e38 100644
--- a/helgrind/tests/tc08_hbl2.c
+++ b/helgrind/tests/tc08_hbl2.c
@@ -121,7 +121,6 @@
 
 int main ( void )
 {
-   const struct timespec delay = { 0, 100 * 1000 * 1000 };
    pthread_t child;
    int i;
 
@@ -135,8 +134,6 @@
       if (i == 5) sleep(1); /* make sure child doesn't starve */
    }
 
-   nanosleep(&delay, 0);
-
    if (pthread_join(child, NULL)) {
       perror("pthread join");
       exit(1);
