--- a/ifgate/ifunpack.c
+++ b/ifgate/ifunpack.c
@@ -271,7 +271,7 @@ int lockunpack(void)
 
 void ulockunpack(void)
 {
-	if (lockfile) (void)unlink(lockfile);
+	if (*lockfile) (void)unlink(lockfile);
 }
 
 #if defined(HAS_STATFS) | defined(HAS_STATVFS)
--- a/ifcico/call.c
+++ b/ifcico/call.c
@@ -77,7 +77,7 @@ int parsehidden(char *str,struct s_hidde
 int override(faddr *addr,node *nlent,fa_list *FromWhere)
 {
  int i;
- static char TXY[3];
+ static char TXY[4];
  struct s_hidden hidden;
 
  hidden.phone=NULL;
--- a/ifcico/xmrecv.c
+++ b/ifcico/xmrecv.c
@@ -367,7 +367,7 @@ SM_STATE(checktelink)
 	debug(11,"checktelink got \"%s\"",printable(xmblk.data,45));
 	if (tmpfname[0] == '\0')
 	{
-		strncpy(tmpfname,xmblk.data+8,16);
+		strncpy(tmpfname,xmblk.data+8,sizeof(tmpfname)-1);
 	}
 	else
 	{
--- a/iflib/pktname.c
+++ b/iflib/pktname.c
@@ -38,7 +38,7 @@ static char *prepbuf(addr)
 faddr *addr;
 {
 	char *p,*domain=NULL;
-	char zpref[8];
+	char zpref[9];
 	fa_list *tmpl;
 
 	if (fakeoutbound)
