diff --git a/src/smblib/smblib.c b/src/smblib/smblib.c
index 12b4c9f3d82479cdb03ed8c76a46c26903c4dc31..f215b58b4a8249963a06d575ed99491146533c56 100644
--- a/src/smblib/smblib.c
+++ b/src/smblib/smblib.c
@@ -845,7 +845,7 @@ int SMBCALL smb_unlockmsghdr(smb_t* smb, smbmsg_t* msg)
 /****************************************************************************/
 /* Adds a header field to the 'msg' structure (in memory only)              */
 /****************************************************************************/
-int SMBCALL smb_hfield(smbmsg_t* msg, ushort type, ushort length, void* data)
+int SMBCALL smb_hfield(smbmsg_t* msg, ushort type, size_t length, void* data)
 {
 	void* vp,**vpp;
 	int i;
diff --git a/src/smblib/smblib.h b/src/smblib/smblib.h
index d79b9f39371e3c69cf7fb60acc34dab7963c6948..7ebf36c62af0d86cdfc248859c206b0a7c781326 100644
--- a/src/smblib/smblib.h
+++ b/src/smblib/smblib.h
@@ -113,7 +113,7 @@ SMBEXPORT int 	SMBCALL smb_lockmsghdr(smb_t* smb, smbmsg_t* msg);
 SMBEXPORT int 	SMBCALL smb_getmsghdr(smb_t* smb, smbmsg_t* msg);
 SMBEXPORT int 	SMBCALL smb_unlockmsghdr(smb_t* smb, smbmsg_t* msg);
 SMBEXPORT int 	SMBCALL smb_addcrc(smb_t* smb, ulong crc);
-SMBEXPORT int 	SMBCALL smb_hfield(smbmsg_t* msg, ushort type, ushort length, void* data);
+SMBEXPORT int 	SMBCALL smb_hfield(smbmsg_t* msg, ushort type, size_t length, void* data);
 SMBEXPORT int 	SMBCALL smb_dfield(smbmsg_t* msg, ushort type, ulong length);
 SMBEXPORT int 	SMBCALL smb_addmsghdr(smb_t* smb, smbmsg_t* msg,int storage);
 SMBEXPORT int 	SMBCALL smb_putmsg(smb_t* smb, smbmsg_t* msg);