diff --git a/testcases/kernel/fs/stream/stream02.c b/testcases/kernel/fs/stream/stream02.c
index 49ad3f9..fd03132 100644
--- a/testcases/kernel/fs/stream/stream02.c
+++ b/testcases/kernel/fs/stream/stream02.c
@@ -72,7 +72,7 @@
 		sprintf(tempfile1, "stream1.%d", getpid());
 	/*--------------------------------------------------------------------*/
 	//block0:
-		if(mknod(tempfile1,0,0010666) < 0) {
+		if(mknod(tempfile1, (S_IFIFO|0666), 0) != 0) {
 			tst_resm(TFAIL,"\tmknod failed in block0\n");
 			local_flag = FAILED;
 			goto block1;
@@ -80,14 +80,16 @@
 		if((stream=fopen(tempfile1,"w+")) == NULL) {
 			tst_resm(TFAIL,"\tfopen w+ failed for pipe file\n");
 			local_flag = FAILED;
+		} else {
+			fclose(stream);
 		}
-		fclose(stream);
 		if((stream=fopen(tempfile1,"a+")) == NULL) {
 			tst_resm(TFAIL,"\tfopen a+ failed\n");
 			local_flag = FAILED;
+		} else {
+			fclose(stream);
+			unlink(tempfile1);
 		}
-		fclose(stream);
-		unlink(tempfile1);
 		if (local_flag == PASSED) {
 		         tst_resm(TPASS, "Test passed in block0.\n");
 		} else {
@@ -103,8 +105,9 @@
 			if(( stream = fopen("/dev/tty","w"))==NULL) {
 				tst_resm(TFAIL,"\tfopen write  failed for /dev/tty\n");
 				local_flag = FAILED;
+			} else {
+				fclose(stream);
 			}
-			fclose(stream);
 		}
 		if (local_flag == PASSED) {
 		         tst_resm(TPASS, "Test passed in block1.\n");
diff --git a/testcases/kernel/fs/stream/stream03.c b/testcases/kernel/fs/stream/stream03.c
index 9aa60fa..f9f3cca 100644
--- a/testcases/kernel/fs/stream/stream03.c
+++ b/testcases/kernel/fs/stream/stream03.c
@@ -96,7 +96,7 @@
 			tst_exit();
 		}
 		pos=ftell(stream);
-		if (pos != strlen(junk) ) {
+		if ((size_t)pos != strlen(junk) ) {
 			tst_resm(TFAIL, "strlen(junk):file pointer descrepancy 2");
 			local_flag = FAILED;
 		}
@@ -113,7 +113,7 @@
 			tst_exit();
 		}
 		pos=ftell(stream);
-		if (pos != strlen(junk) ) {
+		if ((size_t)pos != strlen(junk) ) {
 			tst_resm(TFAIL,"strlen(junk),file pointer descrepancy 4");
 			local_flag = FAILED;
 		}
@@ -123,7 +123,7 @@
 			tst_exit();
 		}
 		pos=ftell(stream);
-		if (pos != strlen(junk) ) {
+		if ((size_t)pos != strlen(junk) ) {
 			tst_resm(TFAIL,"strlen(junk),file pointer descrepancy 5");
 			local_flag = FAILED;
 		}
@@ -139,11 +139,11 @@
 		}
 
 		/* read till EOF, do getc and then check ftell */
-		while (fgets (buf, 30, stream));
+		while (fgets (buf, sizeof(buf), stream));
 		pos=ftell(stream);
 		(void) getc(stream);
 		pos=ftell(stream);
-		if (pos != strlen(junk) ) {
+		if ((size_t)pos != strlen(junk) ) {
 			tst_resm(TFAIL,"strlen(junk),file pointer descrepancy 7");
 			local_flag = FAILED;
 		}
@@ -179,7 +179,7 @@
 			tst_exit();
 		}
 		opos=ftello(stream);
-		if (opos != strlen(junk) ) {
+		if ((size_t)opos != strlen(junk) ) {
 			tst_resm(TFAIL,"strlen(junk),file pointer descrepancy 2");
 			local_flag = FAILED;
 		}
@@ -196,7 +196,7 @@
 			tst_exit();
 		}
 		opos=ftello(stream);
-		if (opos != strlen(junk) ) {
+		if ((size_t)opos != strlen(junk) ) {
 			tst_resm(TFAIL,"strlen(junk),file pointer descrepancy 4");
 			local_flag = FAILED;
 		}
@@ -206,7 +206,7 @@
 			tst_exit();
 		}
 		opos=ftello(stream);
-		if (opos != strlen(junk) ) {
+		if ((size_t)opos != strlen(junk) ) {
 			tst_resm(TFAIL,"strlen(junk),file pointer descrepancy 5");
 			local_flag = FAILED;
 		}
@@ -222,11 +222,11 @@
 		}
 
 		/* read till EOF, do getc and then check ftello */
-		while (fgets (buf, 30, stream));
+		while (fgets (buf, sizeof(buf), stream));
 		opos=ftello(stream);
 		(void) getc(stream);
 		opos=ftello(stream);
-		if (opos != strlen(junk) ) {
+		if ((size_t)opos != strlen(junk) ) {
 			tst_resm(TFAIL,"strlen(junk),file pointer descrepancy 7");
 			local_flag = FAILED;
 		}
diff --git a/testcases/kernel/fs/stream/stream04.c b/testcases/kernel/fs/stream/stream04.c
index 4c53a81..ce96835 100644
--- a/testcases/kernel/fs/stream/stream04.c
+++ b/testcases/kernel/fs/stream/stream04.c
@@ -92,7 +92,7 @@
 			tst_exit();
 		}
 
-		if(ret != strlen(junk)) {
+		if((size_t)ret != strlen(junk)) {
 			tst_resm(TFAIL,"strlen(junk),return value from fwrite");
 			local_flag = FAILED;
 		}
@@ -110,7 +110,7 @@
 			tst_resm(TFAIL,"\tfread failed\n");
 			tst_exit();
 		}
-		if(ret != strlen(junk)) {
+		if((size_t)ret != strlen(junk)) {
 			tst_resm(TFAIL,"strlen(junk),return value from fread");
 			local_flag = FAILED;
 		}
