diff --git a/src/odoors/ODKrnl.c b/src/odoors/ODKrnl.c
index 94145fae90bfb2bcc6e27675cc5d2a0bd717123e..5768d71f58c7a8e1c362962a3702a031c18e3d8c 100644
--- a/src/odoors/ODKrnl.c
+++ b/src/odoors/ODKrnl.c
@@ -198,23 +198,24 @@ tODResult ODKrnlInitialize(void)
    act.sa_flags=SA_RESTART;
    sigemptyset(&(act.sa_mask));
    sigaction(SIGALRM,&act,NULL);
-   itv.it_interval.tv_sec=1;
-   itv.it_interval.tv_usec=0;
-   itv.it_value.tv_sec=1;
-   itv.it_value.tv_usec=0;
+   itv.it_interval.tv_sec=0;
+   itv.it_interval.tv_usec=10000;
+   itv.it_value.tv_sec=0;
+   itv.it_value.tv_usec=10000;
    setitimer(ITIMER_REAL,&itv,NULL);
    
    /* Make stdin signal driven. */
-   act.sa_handler=sig_get_char;
-   act.sa_flags=0;
-   sigemptyset(&(act.sa_mask));
-   sigaction(SIGIO,&act,NULL);
-
-   /* Have SIGIO signales delivered to this process */
-   fcntl(0,F_SETOWN,getpid());
-   
-   /* Enable SIGIO when read possible on stdin */
-   fcntl(0,F_SETFL,fcntl(0,F_GETFL)|O_ASYNC);
+/*   act.sa_handler=sig_get_char;
+/*   act.sa_flags=0;
+/*   sigemptyset(&(act.sa_mask));
+/*   sigaction(SIGIO,&act,NULL);
+/*
+/*   /* Have SIGIO signals delivered to this process */
+/*   fcntl(0,F_SETOWN,getpid());
+/*   
+/*   /* Enable SIGIO when read possible on stdin */
+/*   fcntl(0,F_SETFL,fcntl(0,F_GETFL)|O_ASYNC); */
+/*/
 
    /* Make sure SIGHUP, SIGALRM, and SIGIO are unblocked */
    sigemptyset(&block);
@@ -368,9 +369,9 @@ ODAPIDEF void ODCALL od_kernel(void)
 #ifndef OD_MULTITHREADED
    /* If not operating in local mode, then perform remote-mode specific */
    /* activies.                                                         */
-#ifndef ODPLAT_NIX	/* On *nix, this is handled by signals */
    if(od_control.baud != 0)
    {
+#ifndef ODPLAT_NIX	/* On *nix, this is handled by signals */
       /* If carrier detection is enabled, then shutdown OpenDoors if */
       /* the carrier detect signal is no longer high.                */
       if(!(od_control.od_disable&DIS_CARRIERDETECT))
@@ -381,6 +382,7 @@ ODAPIDEF void ODCALL od_kernel(void)
             ODKrnlForceOpenDoorsShutdown(ERRORLEVEL_NOCARRIER);
          }
       }
+#endif
 
       /* Loop, obtaining any new characters from the serial port and */
       /* adding them to the common local/remote input queue.         */
@@ -389,7 +391,6 @@ ODAPIDEF void ODCALL od_kernel(void)
          ODKrnlHandleReceivedChar(ch, TRUE);
       }
    }
-#endif
 
 #ifdef ODPLAT_DOS
 check_keyboard_again:
diff --git a/src/odoors/ODPlat.c b/src/odoors/ODPlat.c
index ced094b2f7d1b11489760bc357b5bcb151130c5f..b9a76cc2a0930e3936e9dcae78e63071cbe64c1f 100644
--- a/src/odoors/ODPlat.c
+++ b/src/odoors/ODPlat.c
@@ -619,7 +619,7 @@ BOOL ODTimerElapsed(tODTimer *pTimer)
    end.tv_sec=pTimer->Start.tv_sec+(pTimer->Duration / 1000);
    end.tv_usec=((pTimer->Start.tv_usec)+((pTimer->Duration)*1000))%1000000;
    gettimeofday(&tv,NULL);
-   return(end.tv_sec >= tv.tv_sec && end.tv_usec >= tv.tv_usec);
+   return((end.tv_sec >= tv.tv_sec) && (end.tv_usec >= tv.tv_usec));
 #endif
 }