diff --git a/log/include/log.h b/log/include/log.h
index 6fec854796809a140a070e2c5d9a4dccec4b574d..152437bf5e0569b36c0ecec3a0f0831b855d147a 100644
--- a/log/include/log.h
+++ b/log/include/log.h
@@ -27,7 +27,6 @@ void setscale(short s);
 char *colorname(char *Result, short c);
 void scroll();
 void trykbd();
-void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK);
 void confirmsimtype(log_nrec *n);
 void scancn(cnrec *cn, struct LOC_checkcombine *LINK);
 void addblobs(blobrec **blbase, short x1, short y1, short x2, short y2);
diff --git a/log/include/wire.h b/log/include/wire.h
index 6271973b2553ba6ee191a743b01252fdf25378dd..f1bcdcf117a47d5bdae959c6ef73915401bc808f 100644
--- a/log/include/wire.h
+++ b/log/include/wire.h
@@ -40,12 +40,6 @@ void delhwire(log_hwrec *hw);
 
 void closerwire(short x, short y);
 
-/* Local variables for wantsolder: */
-struct LOC_wantsolder
-{
-	int hasred, hasgreen, hasyellow, hasblue;
-};
-
 void chghw(log_hwrec *hw, log_nrec *oldnode, log_nrec *n);
 
 void chgvw(log_vwrec *vw, log_nrec *oldnode, log_nrec *n);
diff --git a/log/src/label.c b/log/src/label.c
index 19cee85a2495f4247aa27e993c179fda469de4c8..3f3644e096a0b189550b259c80bc366d949fc5f2 100644
--- a/log/src/label.c
+++ b/log/src/label.c
@@ -394,4 +394,5 @@ void displabel(log_lrec **l)
 {
 	unlinklabel(*l);
 	Free(*l);
+	l = NULL;
 }
diff --git a/log/src/log.c b/log/src/log.c
index fb6fa9a5a55e2b61b60210ff6554ff437789cd9b..d491bf56c80dae2b8ef6cdb50aa3ec7787b92d1e 100644
--- a/log/src/log.c
+++ b/log/src/log.c
@@ -2381,21 +2381,21 @@ static void purgesignaltab()
 
 void garbagecoll()
 {
-	log_nrec *n, *n1;
+	log_nrec *node;
 	log_grec *g;
 	log_hwrec *hw;
 	log_vwrec *vw;
-	short i, pg, FORLIM, FORLIM1;
+	short pg, FORLIM1;
 
-	n = gg.nbase;
-	while (n != NULL)
+	node = gg.nbase;
+	while (node != NULL)
 	{
-		if (!n->keep)
-			n->ref = 0;
-		n = n->next;
+		if (!node->keep)
+			node->ref = 0;
+		node = node->next;
 	}
-	FORLIM = gg.numpages;
-	for (pg = 0; pg < FORLIM; pg++)
+
+	for (pg = 0; pg < gg.numpages; pg++)
 	{
 		hw = gg.hwbase[pg];
 		while (hw != NULL)
@@ -2403,36 +2403,39 @@ void garbagecoll()
 			hw->node->ref++;
 			hw = hw->next;
 		}
+
 		vw = gg.vwbase[pg];
 		while (vw != NULL)
 		{
 			vw->node->ref++;
 			vw = vw->next;
 		}
+
 		g = gg.gbase[pg];
 		while (g != NULL)
 		{
 			FORLIM1 = g->kind->numpins;
-			for (i = 0; i < FORLIM1; i++)
+			for (short i = 0; i < FORLIM1; i++)
 				g->pin[i]->ref++;
 			g = g->next;
 		}
 	}
-	FORLIM = gg.lastsignal;
-	for (i = 0; i < FORLIM; i++)
+
+	for (short i = 0; i < gg.lastsignal; i++)
 	{
 		if (gg.signaltab[i].np != NULL)
 			gg.signaltab[i].np->ref++;
 	}
 	callsimtools(act_refnodes);
 	purgesignaltab();
-	n = gg.nbase;
-	while (n != NULL)
+
+	node = gg.nbase;
+	while (node != NULL)
 	{
-		n1 = n->next;
-		if (n->ref == 0 && !n->keep)
-			disposenode(&n);
-		n = n1;
+		log_nrec *nextnode = node->next;
+		if (node->ref == 0 && !node->keep)
+			disposenode(&node);
+		node = nextnode;
 	}
 }
 
@@ -3283,32 +3286,6 @@ static void trykbdscroll()
 }
 
 
-void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK)
-{
-	if (*hw == NULL)
-		return;
-	switch ((*hw)->wcolr)
-	{
-
-		case log_wcol_red:
-			LINK->hasred = true;
-			break;
-
-		case log_wcol_green:
-			LINK->hasgreen = true;
-			break;
-
-		case log_wcol_yellow:
-			LINK->hasyellow = true;
-			break;
-
-		case log_wcol_blue:
-			LINK->hasblue = true;
-			break;
-	}
-}
-
-
 void confirmsimtype(log_nrec *n)
 {
 	log_grec *g;
diff --git a/log/src/page.c b/log/src/page.c
index b9ba5feb899a070c905a2f912ef8df3fae493aa7..4772d39673d980283afdad95acbcdd435be22b58 100644
--- a/log/src/page.c
+++ b/log/src/page.c
@@ -12,7 +12,8 @@ void chpage(short pg)
 	stamp(&gg.pagestamp[pg - 1]);
 	gg.pagechanged[pg - 1] = true;
 	r = gg.pageregions[pg - 1];
-	while (r != NULL) {
+	while (r != NULL)
+	{
 		stamp(&r->regstamp);
 		r = r->next;
 	}
diff --git a/log/src/wire.c b/log/src/wire.c
index f8ad535df78f2e0b3b414a9eb88199d845c821fb..53c39b350fb8da8ca12ba0138ff1d4a70acf357b 100644
--- a/log/src/wire.c
+++ b/log/src/wire.c
@@ -10,6 +10,38 @@
 void fryhwire(log_hwrec *hw);
 void fryvwire(log_vwrec *vw);
 
+/* Local variables for wantsolder: */
+struct LOC_wantsolder
+{
+	int hasred, hasgreen, hasyellow, hasblue;
+};
+
+void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK)
+{
+	if (*hw == NULL)
+		return;
+	switch ((*hw)->wcolr)
+	{
+
+		case log_wcol_red:
+			LINK->hasred = true;
+			break;
+
+		case log_wcol_green:
+			LINK->hasgreen = true;
+			break;
+
+		case log_wcol_yellow:
+			LINK->hasyellow = true;
+			break;
+
+		case log_wcol_blue:
+			LINK->hasblue = true;
+			break;
+	}
+}
+
+
 /*===================  NEWHW  ====================*/
 /*=                                              =*/
 /*=  Create a Horizontal Wire.                   =*/