diff --git a/log/include/logdef.h b/log/include/logdef.h
index 39dd6a741916814ccfd4a510b7b8d61132edc9b2..3ab11d40cfd3b999142d92fb8d4ae62a9a78d734 100644
--- a/log/include/logdef.h
+++ b/log/include/logdef.h
@@ -10,6 +10,7 @@
 #else
 # define vextern extern
 #endif
+
 typedef struct log_action_t log_action_t;
 #define log_maxpages    9   /* Maximum page number */
 #define log_maxpins     255   /* Maximum number of pins on a gate */
diff --git a/log/include/logglobals.h b/log/include/logglobals.h
index eb838f163d9e30af1625fc08e1e333aa06f9590d..9534f2960ea14a3883e9875f72903abc799152c6 100644
--- a/log/include/logglobals.h
+++ b/log/include/logglobals.h
@@ -105,9 +105,6 @@ extern short gatecount[log_maxpages];   /* Highest used gate-ID number */
 extern char *curfilename[log_maxpages];   /* Name of last-loaded file */
 extern long realcurpage;
 
-extern log_nrec *freenode;   /* Node "free" list */
-extern log_grec *freegate;   /* Gate "free" list */
-
 extern baseptrs copybuf;   /* Del/Copy/Paste buffer */
 
 extern long htcount;   /* Number of timesteps in list */
diff --git a/log/src/gate.c b/log/src/gate.c
index e75d3d66336abd385af1f894e739baf173ccc0f0..25db9b43adf670d20e6f52a0a5b814703d55967b 100644
--- a/log/src/gate.c
+++ b/log/src/gate.c
@@ -23,6 +23,8 @@
 
 /* new version by Tim Edwards, Dec 1996 */
 
+static log_grec *freegate = NULL;
+
 int insidegate(log_grec *g, short x, short y)
 {
 	short xx1, xx2, yy1, yy2, z;
diff --git a/log/src/log.c b/log/src/log.c
index 2acea3f347c1a1fed3d9c0ad514519fb5d12c478..e75f6d9a65122831e8315f4585591d5ab18b1a26 100644
--- a/log/src/log.c
+++ b/log/src/log.c
@@ -237,9 +237,6 @@ short gatecount[log_maxpages];   /* Highest used gate-ID number */
 char *curfilename[log_maxpages];   /* Name of last-loaded file */
 long realcurpage;
 
-log_nrec *freenode;   /* Node "free" list */
-log_grec *freegate;   /* Gate "free" list */
-
 baseptrs copybuf;   /* Del/Copy/Paste buffer */
 
 long htcount;   /* Number of timesteps in list */
@@ -16238,8 +16235,6 @@ static void initialize()
 	gg.actstr = (char *)Malloc(256);
 	*gg.actstr = '\0';
 	gg.maxsignal = defmaxsignal;
-	freenode = NULL;
-	freegate = NULL;
 	strlist_init(&histlbl);
 	l2 = strlist_append(&histlbl, "Scope mode");
 	l2 = strlist_append(&histlbl, "");
diff --git a/log/src/node.c b/log/src/node.c
index 37ce50c63de2223d7f7a1de4d8bc56a156ac6ef9..926011306c45809d2a0f9f93712897ab6f4bb163 100644
--- a/log/src/node.c
+++ b/log/src/node.c
@@ -11,6 +11,8 @@
 /*=                                              =*/
 /*================================================*/
 
+static log_nrec *freenode = NULL;
+
 void newnptr(log_nrec **n)
 {
 	if (freenode == NULL)