diff --git a/src/smblib/smblib.c b/src/smblib/smblib.c
index 30817df4289f2af9e9e0eaee3ba92c0e0c155d91..9f223eb4d5090257ce6702de021f38ebb4392fbd 100644
--- a/src/smblib/smblib.c
+++ b/src/smblib/smblib.c
@@ -1725,4 +1725,20 @@ long SMBCALL smb_fwrite(void HUGE16* buf, long bytes, FILE* fp)
 #endif
 }
 
+/************************************************************************/
+/* Returns difference from specified timezone and UTC/GMT				*/
+/************************************************************************/
+int SMBCALL smb_tzutc(short zone)
+{
+	int tz;
+
+	if(zone<=1000 && zone>=-1000)	/* 720 is 12 hours */
+		return(zone);
+
+	tz=zone&0xfff;
+	if(zone&(WESTERN_ZONE|US_ZONE))	/* West of UTC? */
+		return(-tz);
+	return(tz);
+}
+
 /* End of SMBLIB.C */
diff --git a/src/smblib/smblib.h b/src/smblib/smblib.h
index 5e2099eab86684be2c0de758068c4df7dca3c0d2..8add0105f7a0b75d943f47bf93a6d9f20cd4d3ae 100644
--- a/src/smblib/smblib.h
+++ b/src/smblib/smblib.h
@@ -130,9 +130,10 @@ SMBEXPORT int 	SMBCALL smb_incdat(smb_t* smb, ulong offset, ulong length, ushort
 SMBEXPORT int 	SMBCALL smb_freemsg(smb_t* smb, smbmsg_t* msg);
 SMBEXPORT int 	SMBCALL smb_freemsgdat(smb_t* smb, ulong offset, ulong length, ushort headers);
 SMBEXPORT int 	SMBCALL smb_freemsghdr(smb_t* smb, ulong offset, ulong length);
-SMBEXPORT void	SMBCALL smb_freemsgtxt(char HUGE16* buf);
+SMBEXPORT void	SMBCALL smb_freemsgtxt(char* buf);
 SMBEXPORT int	SMBCALL	smb_copymsgmem(smbmsg_t* destmsg, smbmsg_t* srcmsg);
-SMBEXPORT char HUGE16*  SMBCALL smb_getmsgtxt(smb_t* smb, smbmsg_t* msg, ulong mode);
+SMBEXPORT char* SMBCALL smb_getmsgtxt(smb_t* smb, smbmsg_t* msg, ulong mode);
+SMBEXPORT int	SMBCALL smb_tzutc(short timezone);
 
 /* FILE pointer I/O functions */