diff -urN gpm-1.19.6/doc/doc.gpm.in gpm-1.19.6.new3/doc/doc.gpm.in
--- gpm-1.19.6/doc/doc.gpm.in	Wed Oct  3 23:35:54 2001
+++ gpm-1.19.6.new3/doc/doc.gpm.in	Sun Feb 10 17:20:43 2002
@@ -304,7 +304,7 @@
         Set the acceleration value used when a single motion event is
         longer than @var{delta} (see @samp{-d}). 
 
-@item -A [@var{limit}]
+@item -A[@var{limit}]
         Start up with selection pasting disabled.  This is intended as a
         security measure; a plausible attack on a system seems to be to
         stuff a nasty shell command into the selection buffer
@@ -314,8 +314,8 @@
         into a more general aging mechanism; the
         gpm daemon can disable (@emph{age}) selection pasting
         automatically after a period of inactivity.  To enable this mode
-        just give the optional @var{limit} parameter which is
-        interpreted as the time in seconds for which a selection is
+        just give the optional @var{limit} parameter (no space in between !)
+        which is interpreted as the time in seconds for which a selection is
         considered valid and pastable.
         As of version 1.15.7, a trivial program called
         @code{disable-paste} is provided. The following makes a good
@@ -404,10 +404,11 @@
         Set the responsiveness. A higher
 	responsiveness is used for a faster cursor motion.
 
-@item -R @var{name}
+@item -R[@var{name}]
         Causes @code{gpm} to act as a repeater: any mouse data received while
         in graphic mode will be produced on the fifo @file{/dev/gpmdata}
-        in protocol @var{name}.  In principle, you can use the same
+        in protocol @var{name}, given as an optional argument (no space in
+        between !).  In principle, you can use the same
         names as for the @samp{-t} option, although repeating into some
         protocols may not be implemented for a while.  @xref{Mouse Types}.
         In addition, you can specify @samp{raw} as the @var{name}, to repeat
@@ -438,15 +439,14 @@
 @item -v
         Print version information and exit.
 
-@item -V @var{verbosity increment}
+@item -V[@var{verbosity increment}]
         Raise or decrease the maximum level of messages that will be
         logged.  Thus a positive argument has the effect of making the
         program more verbose.  One can also give a negative argument to
-        hush the program; however, note that due to @b{getopt(3)} rules
-        a negative argument must follow the option with no space betwixt
-        (that is, @samp{-V-1} but not @samp{-V -1}).  The argument is
-        optional and its default value is 1.  Default verbosity level is
-        5 (@code{LOG_NOTICE}). 
+        hush the program; due to @b{getopt(3)} rules, any optional
+        argument needs to be passed without a space in between !
+        When omitting the argument, the increment defaults to 1.
+        Default verbosity level is 5 (@code{LOG_NOTICE}). 
         @xref{Program Arguments,,,libc}.
 
 @item -2
diff -urN gpm-1.19.6/src/gpm.c gpm-1.19.6.new3/src/gpm.c
--- gpm-1.19.6/src/gpm.c	Mon Oct  1 22:02:25 2001
+++ gpm-1.19.6.new3/src/gpm.c	Sun Feb 10 17:18:15 2002
@@ -58,15 +58,17 @@
 /*
  * all the values duplicated for dual-mouse operation are
  * now in this structure (see gpmInt.h)
+ * mouse_table[0] is single mouse, mouse_table[1] and mouse_table[2]
+ * are copied data from mouse_table[0] for dual mouse operation.
  */
-
 struct mouse_features mouse_table[3] = {
   {
   DEF_TYPE, DEF_DEV, DEF_SEQUENCE,
   DEF_BAUD, DEF_SAMPLE, DEF_DELTA, DEF_ACCEL, DEF_SCALE, 0 /* scaley */,
   DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP,
   (char *)NULL /* extra */,
-  (Gpm_Type *)NULL
+  (Gpm_Type *)NULL,
+  -1
   },
 };
 struct mouse_features *which_mouse;
diff -urN gpm-1.19.6/src/gpn.c gpm-1.19.6.new3/src/gpn.c
--- gpm-1.19.6/src/gpn.c	Sun Sep 23 21:00:03 2001
+++ gpm-1.19.6.new3/src/gpn.c	Sun Feb 10 17:18:14 2002
@@ -261,7 +261,7 @@
   } /*if*/
 }
 
-/* the function returns a valid type pointer or NULL if not found*/
+/* the function returns a valid type pointer or NULL if not found */
 static struct Gpm_Type *find_mouse_by_name(char *name)
 {
     Gpm_Type *type;
@@ -270,17 +270,21 @@
 
     for (type=mice; type->fun; type++) {
     
+	/*printf("name %s typename %s\n", name, type->name);*/
 	if (!strcasecmp(name, type->name))
-	    break;
+	    goto found;
 	/* otherwise, look in the synonym list */
 	for (s = type->synonyms; s; s = strchr(s, ' ')) {
 	    while (*s && isspace(*s))
 	        s++; /* skip spaces */
+	    /*printf("name %s syn %s\n", name, s);*/
 	    if (!strncasecmp(name, s, len) && !isprint(*(s + len)))
-	        break; /* found */
+	        goto found; /* found */
 	}
-	if (s) break; /* found a synonym */
+	if (s) goto found; /* found a synonym */
     }
+    return NULL; /* no matching mouse type found */
+found:
     if (!type->fun)
         return NULL;
     return type;
