diff --git a/src/os_vms.c b/src/os_vms.c
index 28976b1..f87a1cd 100644
--- a/src/os_vms.c
+++ b/src/os_vms.c
@@ -298,35 +298,35 @@
     int
 vms_read(char *inbuf, size_t nbytes)
 {
-    int         status, function, len;
-    TT_MODE     tt_mode;
-    ITEM        itmlst[2];     /* terminates on everything */
+    int		status, function, len;
+    TT_MODE	tt_mode;
+    ITEM	itmlst[2];     /* terminates on everything */
     static long trm_mask[8] = {-1, -1, -1, -1, -1, -1, -1, -1};
 
     /* whatever happened earlier we need an iochan here */
     if (!iochan)
-        tt_mode = get_tty();
+	tt_mode = get_tty();
 
     /* important: clean the inbuf */
     memset(inbuf, 0, nbytes);
 
     /* set up the itemlist for the first read */
     vul_item(&itmlst[0], 0, TRM$_MODIFIERS,
-         (char *)( TRM$M_TM_NOECHO  | TRM$M_TM_NOEDIT    |
-                   TRM$M_TM_NOFILTR | TRM$M_TM_TRMNOECHO |
-                   TRM$M_TM_NORECALL) , 0);
+	 (char *)( TRM$M_TM_NOECHO  | TRM$M_TM_NOEDIT	 |
+		   TRM$M_TM_NOFILTR | TRM$M_TM_TRMNOECHO |
+		   TRM$M_TM_NORECALL) , 0);
     vul_item(&itmlst[1], sizeof(trm_mask), TRM$_TERM, (char *)&trm_mask, 0);
 
     /* wait forever for a char */
     function = (IO$_READLBLK | IO$M_EXTEND);
     status = sys$qiow(0, iochan, function, &iosb, 0, 0,
-                         inbuf, nbytes-1, 0, 0, &itmlst, sizeof(itmlst));
+			 inbuf, nbytes-1, 0, 0, &itmlst, sizeof(itmlst));
     len = strlen(inbuf); /* how many chars we got? */
 
     /* read immedatelly the rest in the IO queue   */
     function = (IO$_READLBLK | IO$M_TIMED | IO$M_ESCAPE | IO$M_NOECHO | IO$M_NOFILTR);
     status = sys$qiow(0, iochan, function, &iosb, 0, 0,
-                         inbuf+len, nbytes-1-len, 0, 0, 0, 0);
+			 inbuf+len, nbytes-1-len, 0, 0, 0, 0);
 
     len = strlen(inbuf); /* return the total length */
 
