diff --git a/coregrind/arch/x86-linux/vg_libpthread.c b/coregrind/arch/x86-linux/vg_libpthread.c
index 6911474..25688c8 100644
--- a/coregrind/arch/x86-linux/vg_libpthread.c
+++ b/coregrind/arch/x86-linux/vg_libpthread.c
@@ -386,6 +386,21 @@
    return 0;
 }
 
+int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
+{
+  if (policy != SCHED_OTHER && policy != SCHED_FIFO && policy != SCHED_RR)
+    return EINVAL;
+  attr->__schedpolicy = policy;
+  return 0;
+}
+
+int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy)
+{
+  *policy = attr->__schedpolicy;
+  return 0;
+}
+
+
 /* --------------------------------------------------- 
    Helper functions for running a thread 
    and for clearing up afterwards.
diff --git a/coregrind/arch/x86-linux/vg_libpthread_unimp.c b/coregrind/arch/x86-linux/vg_libpthread_unimp.c
index dec5761..74fc79c 100644
--- a/coregrind/arch/x86-linux/vg_libpthread_unimp.c
+++ b/coregrind/arch/x86-linux/vg_libpthread_unimp.c
@@ -85,13 +85,13 @@
 void pthread_attr_getdetachstate ( void )  { unimp("pthread_attr_getdetachstate"); }
 void pthread_attr_getinheritsched ( void )  { unimp("pthread_attr_getinheritsched"); }
 //void pthread_attr_getschedparam ( void )  { unimp("pthread_attr_getschedparam"); }
-void pthread_attr_getschedpolicy ( void )  { unimp("pthread_attr_getschedpolicy"); }
+//void pthread_attr_getschedpolicy ( void )  { unimp("pthread_attr_getschedpolicy"); }
 //void pthread_attr_getscope ( void )  { unimp("pthread_attr_getscope"); }
 
 //void pthread_attr_setdetachstate ( void )  { unimp("pthread_attr_setdetachstate"); }
 //void pthread_attr_setinheritsched ( void )  { unimp("pthread_attr_setinheritsched"); }
 //void pthread_attr_setschedparam ( void )  { unimp("pthread_attr_setschedparam"); }
-void pthread_attr_setschedpolicy ( void )  { unimp("pthread_attr_setschedpolicy"); }
+//void pthread_attr_setschedpolicy ( void )  { unimp("pthread_attr_setschedpolicy"); }
 //void pthread_attr_setscope ( void )  { unimp("pthread_attr_setscope"); }
 void pthread_barrier_destroy ( void )  { unimp("pthread_barrier_destroy"); }
 void pthread_barrier_init ( void )  { unimp("pthread_barrier_init"); }
diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c
index 6911474..25688c8 100644
--- a/coregrind/vg_libpthread.c
+++ b/coregrind/vg_libpthread.c
@@ -386,6 +386,21 @@
    return 0;
 }
 
+int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
+{
+  if (policy != SCHED_OTHER && policy != SCHED_FIFO && policy != SCHED_RR)
+    return EINVAL;
+  attr->__schedpolicy = policy;
+  return 0;
+}
+
+int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy)
+{
+  *policy = attr->__schedpolicy;
+  return 0;
+}
+
+
 /* --------------------------------------------------- 
    Helper functions for running a thread 
    and for clearing up afterwards.
diff --git a/coregrind/vg_libpthread_unimp.c b/coregrind/vg_libpthread_unimp.c
index dec5761..74fc79c 100644
--- a/coregrind/vg_libpthread_unimp.c
+++ b/coregrind/vg_libpthread_unimp.c
@@ -85,13 +85,13 @@
 void pthread_attr_getdetachstate ( void )  { unimp("pthread_attr_getdetachstate"); }
 void pthread_attr_getinheritsched ( void )  { unimp("pthread_attr_getinheritsched"); }
 //void pthread_attr_getschedparam ( void )  { unimp("pthread_attr_getschedparam"); }
-void pthread_attr_getschedpolicy ( void )  { unimp("pthread_attr_getschedpolicy"); }
+//void pthread_attr_getschedpolicy ( void )  { unimp("pthread_attr_getschedpolicy"); }
 //void pthread_attr_getscope ( void )  { unimp("pthread_attr_getscope"); }
 
 //void pthread_attr_setdetachstate ( void )  { unimp("pthread_attr_setdetachstate"); }
 //void pthread_attr_setinheritsched ( void )  { unimp("pthread_attr_setinheritsched"); }
 //void pthread_attr_setschedparam ( void )  { unimp("pthread_attr_setschedparam"); }
-void pthread_attr_setschedpolicy ( void )  { unimp("pthread_attr_setschedpolicy"); }
+//void pthread_attr_setschedpolicy ( void )  { unimp("pthread_attr_setschedpolicy"); }
 //void pthread_attr_setscope ( void )  { unimp("pthread_attr_setscope"); }
 void pthread_barrier_destroy ( void )  { unimp("pthread_barrier_destroy"); }
 void pthread_barrier_init ( void )  { unimp("pthread_barrier_init"); }
diff --git a/vg_libpthread.c b/vg_libpthread.c
index 6911474..25688c8 100644
--- a/vg_libpthread.c
+++ b/vg_libpthread.c
@@ -386,6 +386,21 @@
    return 0;
 }
 
+int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
+{
+  if (policy != SCHED_OTHER && policy != SCHED_FIFO && policy != SCHED_RR)
+    return EINVAL;
+  attr->__schedpolicy = policy;
+  return 0;
+}
+
+int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy)
+{
+  *policy = attr->__schedpolicy;
+  return 0;
+}
+
+
 /* --------------------------------------------------- 
    Helper functions for running a thread 
    and for clearing up afterwards.
diff --git a/vg_libpthread_unimp.c b/vg_libpthread_unimp.c
index dec5761..74fc79c 100644
--- a/vg_libpthread_unimp.c
+++ b/vg_libpthread_unimp.c
@@ -85,13 +85,13 @@
 void pthread_attr_getdetachstate ( void )  { unimp("pthread_attr_getdetachstate"); }
 void pthread_attr_getinheritsched ( void )  { unimp("pthread_attr_getinheritsched"); }
 //void pthread_attr_getschedparam ( void )  { unimp("pthread_attr_getschedparam"); }
-void pthread_attr_getschedpolicy ( void )  { unimp("pthread_attr_getschedpolicy"); }
+//void pthread_attr_getschedpolicy ( void )  { unimp("pthread_attr_getschedpolicy"); }
 //void pthread_attr_getscope ( void )  { unimp("pthread_attr_getscope"); }
 
 //void pthread_attr_setdetachstate ( void )  { unimp("pthread_attr_setdetachstate"); }
 //void pthread_attr_setinheritsched ( void )  { unimp("pthread_attr_setinheritsched"); }
 //void pthread_attr_setschedparam ( void )  { unimp("pthread_attr_setschedparam"); }
-void pthread_attr_setschedpolicy ( void )  { unimp("pthread_attr_setschedpolicy"); }
+//void pthread_attr_setschedpolicy ( void )  { unimp("pthread_attr_setschedpolicy"); }
 //void pthread_attr_setscope ( void )  { unimp("pthread_attr_setscope"); }
 void pthread_barrier_destroy ( void )  { unimp("pthread_barrier_destroy"); }
 void pthread_barrier_init ( void )  { unimp("pthread_barrier_init"); }
