--- a/man2html/man2html.c
+++ b/man2html/man2html.c
@@ -184,7 +184,7 @@
 		    char t,te,tg,*e;
 		    e=h+1;
 		    while (h>c && (isalnum(h[-1]) || h[-1]=='_' ||
-				    h[-1]=='-' || h[-1]=='.'))
+				    h[-1]=='-' || h[-1]=='.' || h[-1]==':'))
 			h--;
 		    t=*h; *h=0;
 		    printf("%s", c);
@@ -765,7 +765,15 @@
 	    break;
 	case 'v': case 'V':
 	case 'w': case 'W':
-	    c=scan_expression(c+2,&curfield->width);
+//	    c=scan_expression(c+2,&curfield->width);
+             c++;
+	     if (*c == '(') {
+	        c=scan_expression(c+1,&curfield->width);
+	     } else {
+	     	i=0;
+	     	while (isdigit(*c)) i=i*10+(*c++)-'0';
+	        curfield->width=i;
+	     }
 	    break;
 	case '|':
 	    if (curfield->align) curfield->vleft++;
@@ -3080,7 +3088,7 @@
     int l, c;
     char *buf, *filename, *fnam = NULL;
 
-#ifdef __CYGWIN32__
+#ifdef __CYGWIN__
     int opterr;
 
     extern int optind;
@@ -3205,7 +3213,7 @@
 	/*   for mosaic users */
 	printf("<HR>\n<A NAME=\"index\">&nbsp;</A><H2>Index</H2>\n<DL>\n");
 	manidx[mip]=0;
-	printf(manidx);
+	printf("%s", manidx);
 	if (subs) printf("</DL>\n");
 	printf("</DL>\n");
 	print_sig();