- BuildCommDCB16() uses int instead of BOOL
- OpenComm16() should return IE_BADID for *all* invalid strings

diff --git a/dlls/kernel/comm.c b/dlls/kernel/comm.c
index 7b7bad4..935a27b 100644
--- a/dlls/kernel/comm.c
+++ b/dlls/kernel/comm.c
@@ -379,7 +379,7 @@
  * IF THIS IS NOT CORRECT THE RETURNVALUE CHECK IN BuildCommDCBAndTimeoutsA
  * NEEDS TO BE FIXED
  */
-BOOL16 WINAPI BuildCommDCB16(LPCSTR device, LPDCB16 lpdcb)
+INT16 WINAPI BuildCommDCB16(LPCSTR device, LPDCB16 lpdcb)
 {
 	/* "COM1:96,n,8,1"	*/
 	/*  012345		*/
@@ -600,7 +600,7 @@
 			return port|FLAG_LPT;
 		}
 	}
-	return 0;
+	return IE_BADID;
 }
 
 /*****************************************************************************
diff --git a/include/wine/winuser16.h b/include/wine/winuser16.h
index 9b53e3b..c486975 100644
--- a/include/wine/winuser16.h
+++ b/include/wine/winuser16.h
@@ -920,7 +920,7 @@
 BOOL16      WINAPI DrawState16A(HDC16,HBRUSH16,DRAWSTATEPROC16,LPARAM,WPARAM16,INT16,INT16,INT16,INT16,UINT16);
 BOOL16      WINAPI IsDialogMessage16(HWND16,SEGPTR);
 INT16       WINAPI GetCommError16(INT16,LPCOMSTAT16);
-BOOL16      WINAPI BuildCommDCB16(LPCSTR,LPDCB16);
+INT16       WINAPI BuildCommDCB16(LPCSTR,LPDCB16);
 INT16       WINAPI GetCommState16(INT16,LPDCB16);
 INT16       WINAPI SetCommState16(LPDCB16);
 INT16       WINAPI lstrcmp16(LPCSTR,LPCSTR);