diff -Naurb a/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/26-1.c b/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/26-1.c
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/26-1.c	2005-06-03 22:03:02.000000000 +0530
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/26-1.c	2009-08-06 14:36:01.000000000 +0530
@@ -16,9 +16,39 @@
 #include <stdio.h>
 #include <errno.h>
 #include <unistd.h>
+#include <pwd.h>
 #include "posixtest.h"
 
 
+/** Set the euid of this process to a non-root uid */
+int set_nonroot()
+{
+	struct passwd *pw;
+	setpwent();
+	/* search for the first user which is non root */ 
+	while((pw = getpwent()) != NULL)
+		if(strcmp(pw->pw_name, "root"))
+			break;
+	endpwent();
+	if(pw == NULL) {
+		printf("There is no other user than current and root.\n");
+		return 1;
+	}
+
+	if(seteuid(pw->pw_uid) != 0) {
+		if(errno == EPERM) {
+			printf("You don't have permission to change your UID.\n");
+			return 1;
+		}
+		perror("An error occurs when calling seteuid()");
+		return 1;
+	}
+	
+	printf("Testing with user '%s' (uid: %d)\n",
+	       pw->pw_name, (int)geteuid());
+	return 0;
+}
+
 
 int main(){
 	int result;
@@ -28,9 +58,11 @@
         /* and can only be accessed by root */ 
         /* This test should be run under standard user permissions */
         if (getuid() == 0) {
-                puts("Run this test case as a Regular User, but not ROOT");
+	  	if (set_nonroot() != 0) {
+			  printf("Cannot run this test as non-root user\n");	
                 return PTS_UNTESTED;
         }
+        }
 
 	if(sched_getparam(0, &param) == -1) {
 		perror("An error occurs when calling sched_getparam()");
