--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/10-1.c	2010-11-24 17:44:59.000000000 +0900
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/10-1.c	2010-11-29 12:14:27.000000000 +0900
@@ -24,8 +24,10 @@
 #define SLEEPDELTA 3
 #define ACCEPTABLEDELTA 1
 
+int endflg = 0;
 void handler(int signo)
 {
+	endflg = 1;
 	printf("Caught signal\n");
 }
 
@@ -81,13 +83,24 @@
 		return PTS_UNRESOLVED;
 	}
 
-	if (nanosleep(&ts, &tsleft) != -1) {
-		perror("nanosleep() not interrupted");
-		return PTS_FAIL;
+	int n = 0;
+	int i = 0;
+	struct timespec ts1, ts2;
+	clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts1);
+	while (1)
+	{
+		for (i = 0; i < 100000; i++)
+			n += i;
+		clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts2);
+		tsleft.tv_sec = ts.tv_sec - (ts2.tv_sec - ts1.tv_sec);
+		if (tsleft.tv_sec < 0)
+			tsleft.tv_sec = 0;
+		if ((tsleft.tv_sec == 0) || (endflg == 1))
+			break;
 	}
 
 	if ( abs(tsleft.tv_sec-SLEEPDELTA) <= ACCEPTABLEDELTA) {
-		printf("Test PASSED");
+		printf("Test PASSED\n");
 		return PTS_PASS;
 	} else {
 		printf("Timer did not last for correct amount of time\n");
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/11-1.c	2010-11-24 17:44:59.000000000 +0900
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/11-1.c	2010-11-29 14:19:42.000000000 +0900
@@ -22,8 +22,10 @@
 #define SLEEPDELTA 3
 #define ACCEPTABLEDELTA 1
 
+int endflg = 0;
 void handler(int signo)
 {
+	endflg = 1;
 	printf("Caught signal\n");
 }
 
@@ -78,13 +80,24 @@
 		return PTS_UNRESOLVED;
 	}
 
-	if (nanosleep(&ts, &tsleft) != -1) {
-		perror("nanosleep() not interrupted");
-		return PTS_FAIL;
+	int n = 0;
+	int i = 0;
+	struct timespec ts1, ts2;
+	clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts1);
+	while (1)
+	{
+		for (i = 0; i < 100000; i++)
+			n += i;
+		clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts2);
+		tsleft.tv_sec = ts.tv_sec - (ts2.tv_sec - ts1.tv_sec);
+		if (tsleft.tv_sec < 0)
+			tsleft.tv_sec = 0;
+		if ((tsleft.tv_sec == 0) || (endflg == 1))
+			break;
 	}
 
 	if ( abs(tsleft.tv_sec-SLEEPDELTA) <= ACCEPTABLEDELTA) {
-		printf("Test PASSED");
+		printf("Test PASSED\n");
 		return PTS_PASS;
 	} else {
 		printf("Timer did not last for correct amount of time\n");
