--- ltp-full-20080731.orig/testcases/kernel/ipc/ipc_stress/message_queue_test_05.c	2007-11-10 03:24:41.000000000 -0600
+++ ltp-full-20080731/testcases/kernel/ipc/ipc_stress/message_queue_test_05.c	2008-08-06 22:04:04.000000000 -0500
@@ -143,7 +143,13 @@
 			if (debug) printf ("\tcreating queue [%d]\n", nqueues);
 			if ((msqid_array [nqueues++] 
 				= msgget (IPC_PRIVATE, IPC_CREAT|mode)) < 0)
+			{
+	  	            	while (nqueues > 0) 
+		                        msgctl (msqid_array [--nqueues], IPC_RMID, 0);
+
 				sys_error ("msgget failed", __LINE__);
+				exit (-1);
+			}	
 
 			if (nqueues > MAX_MESSAGE_QUEUES) 
 				break;
@@ -240,5 +246,4 @@
 static void error (const char *msg, int line)
 {
 	fprintf (stderr, "ERROR [line: %d] %s\n", line, msg);
-	exit (-1);
 }
