diff -Npur mig.old/ChangeLog mig/ChangeLog
--- mig.old/ChangeLog	2006-01-26 14:40:06.000000000 -0300
+++ mig/ChangeLog	2006-04-05 20:50:39.000000000 -0300
@@ -1,3 +1,16 @@
+2006-04-05  Leonardo Lopes Pereira  <leonardolopespereira@gmail.com>
+
+	* global.h: removed unnecessary declaration of UseMsgRPC variable.
+	* global.c: removed unnecessary definition of UseMsgRPC variable.
+	* migcom.c (parseArgs): Changed the switchers r and R to deal with
+	the abstence of obsolete send/receive pairs.
+	* mig.in: Removed information about -r and -R options from help
+	messages.
+	* user.c (WriteRoutine): Adpot in the use of UseMsgRPC as it was
+	defined to `TRUE'.
+	(WriteMsgError): Doc fixes.
+	(WriteMsgSendReceive): Removed, since it is not used anymore.
+
 2006-01-26  Thomas Schwinge  <tschwinge@gnu.org>
 
 	* config.guess: Updated from the canonical source.
diff -Npur mig.old/global.c mig/global.c
--- mig.old/global.c	2001-06-07 21:49:10.000000000 -0300
+++ mig/global.c	2006-04-05 20:38:58.000000000 -0300
@@ -30,7 +30,6 @@
 boolean_t DefaultFiles = TRUE;
 boolean_t BeQuiet = FALSE;
 boolean_t BeVerbose = FALSE;
-boolean_t UseMsgRPC = TRUE;
 boolean_t GenSymTab = FALSE;
 
 boolean_t IsKernelUser = FALSE;
diff -Npur mig.old/global.h mig/global.h
--- mig.old/global.h	2001-06-07 21:49:10.000000000 -0300
+++ mig/global.h	2006-04-05 20:37:44.000000000 -0300
@@ -35,7 +35,6 @@
 extern boolean_t DefaultFiles;	/* default output file names if no arguments */
 extern boolean_t BeQuiet;	/* no warning messages */
 extern boolean_t BeVerbose;	/* summarize types, routines */
-extern boolean_t UseMsgRPC;
 extern boolean_t GenSymTab;
 
 extern boolean_t IsKernelUser;
diff -Npur mig.old/migcom.c mig/migcom.c
--- mig.old/migcom.c	2001-06-07 21:49:17.000000000 -0300
+++ mig/migcom.c	2006-04-05 20:30:31.000000000 -0300
@@ -31,8 +31,6 @@
  *		-[V,q]  not verbose or quiet : don't print
  *			information during compilation
  *			(this is the default)
- *		-[r,R]  do or don't use rpc calls instead of
- *			send/receive pairs. Default is -r.
  *		-[s,S]	generate symbol table or not:  generate a
  *			table of rpc-name, number, routine triplets
  *			as an external data structure -- main use is
@@ -106,10 +104,9 @@ parseArgs(int argc, char **argv)
 		BeVerbose = FALSE;
 		break;
 	      case 'r':
-		UseMsgRPC = TRUE;
 		break;
 	      case 'R':
-		UseMsgRPC = FALSE;
+		fatal("this option cannot be used anymore, use the rpc calls instead.");
 		break;
 	      case 'l':
 		if (streql(argv[0], "-list"))
diff -Npur mig.old/mig.in mig/mig.in
--- mig.old/mig.in	2005-06-06 04:48:16.000000000 -0300
+++ mig/mig.in	2006-04-05 20:33:35.000000000 -0300
@@ -86,8 +86,6 @@ Usage: $progname [OPTION]... [FILE]...
 This is the GNU implementation of the Mach interface generator \`MiG',
 which Mach RPC stubs from \`.defs' files.
 
-  -r              use msg_rpc [default]
-  -R              use msg_send
   -q		  suppress warning statements
   -Q		  print warning statements [default]
   -v		  verbose
diff -Npur mig.old/user.c mig/user.c
--- mig.old/user.c	2004-02-10 22:42:14.000000000 -0300
+++ mig/user.c	2006-04-05 20:50:24.000000000 -0300
@@ -245,7 +245,7 @@ WriteVarDecls(FILE *file, const routine_
 /*************************************************************
  *  Writes code to call the user provided error procedure
  *  when a MIG error occurs. Called by WriteMsgSend,
- *  WriteMsgCheckReceive, WriteMsgSendReceive, WriteCheckIdentity,
+ *  WriteMsgCheckReceive, WriteCheckIdentity,
  *  WriteRetCodeCheck, WriteTypeCheck, WritePackArgValue.
  *************************************************************/
 static void
@@ -339,41 +339,6 @@ WriteMsgCheckReceive(FILE *file, const r
 }
 
 /*************************************************************
- *  Writes the send and receive calls and code to check
- *  for errors. Normally the rpc code is generated instead
- *  although, the subsytem can be compiled with the -R option
- *  which will cause this code to be generated. Called by
- *  WriteRoutine if UseMsgRPC option is false.
- *************************************************************/
-static void
-WriteMsgSendReceive(FILE *file, const routine_t *rt)
-{
-    char SendSize[24];
-
-    if (rt->rtNumRequestVar == 0)
-        sprintf(SendSize, "%d", rt->rtRequestSize);
-    else
-	strcpy(SendSize, "msgh_size");
-
-    fprintf(file, "\tmsg_result = %smach_msg(&InP->Head, MACH_SEND_MSG|%s, %s, 0, MACH_PORT_NULL, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);\n",
-	    SubrPrefix,
-	    rt->rtMsgOption->argVarName,
-	    SendSize);
-
-    fprintf(file, "\tif (msg_result != MACH_MSG_SUCCESS)\n");
-    WriteMsgError(file, rt, "msg_result");
-    fprintf(file, "\n");
-
-    fprintf(file, "\tmsg_result = %smach_msg(&OutP->Head, MACH_RCV_MSG|%s%s, 0, sizeof(Reply), InP->Head.msgh_local_port, %s, MACH_PORT_NULL);\n",
-	    SubrPrefix,
-	    rt->rtMsgOption->argVarName,
-	    rt->rtWaitTime != argNULL ? "|MACH_RCV_TIMEOUT" : "",
-	    rt->rtWaitTime != argNULL ? rt->rtWaitTime->argVarName : "MACH_MSG_TIMEOUT_NONE");
-    WriteMsgCheckReceive(file, rt, "MACH_MSG_SUCCESS");
-    fprintf(file, "\n");
-}
-
-/*************************************************************
  *  Writes the rpc call and the code to check for errors.
  *  This is the default code to be generated. Called by WriteRoutine
  *  for all routine types except SimpleProcedure and SimpleRoutine.
@@ -1219,10 +1184,7 @@ WriteRoutine(FILE *file, register const 
 	WriteMsgSend(file, rt);
     else
     {
-	if (UseMsgRPC)
-	    WriteMsgRPC(file, rt);
-	else
-	    WriteMsgSendReceive(file, rt);
+        WriteMsgRPC(file, rt);
 
 	/* Check the values that are returned in the reply message */
 
