diff --git a/src/lisp/Darwin-os.c b/src/lisp/Darwin-os.c
index c18d47fb5c336b76ee8938aca194dee174eb1227..693cbf6724feb8f1bcef00b262a8ea302ee1b4bb 100644
--- a/src/lisp/Darwin-os.c
+++ b/src/lisp/Darwin-os.c
@@ -484,10 +484,6 @@ in_range_p(os_vm_address_t a, lispobj sbeg, size_t slen)
 boolean
 valid_addr(os_vm_address_t addr)
 {
-    os_vm_address_t newaddr;
-
-    newaddr = os_trunc_to_page(addr);
-
     if (in_range_p(addr, READ_ONLY_SPACE_START, read_only_space_size)
 	|| in_range_p(addr, STATIC_SPACE_START, static_space_size)
 	|| in_range_p(addr, DYNAMIC_0_SPACE_START, dynamic_space_size)
diff --git a/src/lisp/FreeBSD-os.c b/src/lisp/FreeBSD-os.c
index e42ea5b6fa0779d29737260cab80ff7a2d195925..51c295b3f023fe3c9f6fe879f9e595b58c97b3a1 100644
--- a/src/lisp/FreeBSD-os.c
+++ b/src/lisp/FreeBSD-os.c
@@ -218,10 +218,6 @@ in_range_p(os_vm_address_t a, lispobj sbeg, size_t slen)
 boolean
 valid_addr(os_vm_address_t addr)
 {
-    os_vm_address_t newaddr;
-
-    newaddr = os_trunc_to_page(addr);
-
     if (in_range_p(addr, READ_ONLY_SPACE_START, read_only_space_size)
 	|| in_range_p(addr, STATIC_SPACE_START, static_space_size)
 	|| in_range_p(addr, DYNAMIC_0_SPACE_START, dynamic_space_size)
diff --git a/src/lisp/Linux-os.c b/src/lisp/Linux-os.c
index cbd25fd1a48e3d53843b36c44c43505f2404d1f2..7f7a4d7acd350c1ef5b443ef5a28cf848c2e368f 100644
--- a/src/lisp/Linux-os.c
+++ b/src/lisp/Linux-os.c
@@ -381,10 +381,6 @@ in_range_p(os_vm_address_t a, lispobj sbeg, size_t slen)
 boolean
 valid_addr(os_vm_address_t addr)
 {
-    os_vm_address_t newaddr;
-
-    newaddr = os_trunc_to_page(addr);
-
     if (in_range_p(addr, READ_ONLY_SPACE_START, read_only_space_size)
 	|| in_range_p(addr, STATIC_SPACE_START, static_space_size)
 	|| in_range_p(addr, DYNAMIC_0_SPACE_START, dynamic_space_size)
diff --git a/src/lisp/NetBSD-os.c b/src/lisp/NetBSD-os.c
index e73d693b2f52b03f279df42c1172d15d6bdc0948..7b73529de35111859729ac7ced7806240874b052 100644
--- a/src/lisp/NetBSD-os.c
+++ b/src/lisp/NetBSD-os.c
@@ -271,10 +271,6 @@ in_range_p(os_vm_address_t a, lispobj sbeg, size_t slen)
 boolean
 valid_addr(os_vm_address_t addr)
 {
-    os_vm_address_t newaddr;
-
-    newaddr = os_trunc_to_page(addr);
-
     if (in_range_p(addr, READ_ONLY_SPACE_START, read_only_space_size)
 	|| in_range_p(addr, STATIC_SPACE_START, static_space_size)
 	|| in_range_p(addr, DYNAMIC_0_SPACE_START, dynamic_space_size)
diff --git a/src/lisp/OpenBSD-os.c b/src/lisp/OpenBSD-os.c
index 088d96a1b504385676456180887e8295b2984809..20acdf51c5947ccd52129f69c6005b7eba68d706 100644
--- a/src/lisp/OpenBSD-os.c
+++ b/src/lisp/OpenBSD-os.c
@@ -143,11 +143,6 @@ in_range_p(os_vm_address_t a, lispobj sbeg, size_t slen)
 boolean
 valid_addr(os_vm_address_t addr)
 {
-    int ret;
-    os_vm_address_t newaddr;
-
-    newaddr = os_trunc_to_page(addr);
-
     if (in_range_p(addr, READ_ONLY_SPACE_START, READ_ONLY_SPACE_SIZE)
 	|| in_range_p(addr, STATIC_SPACE_START, STATIC_SPACE_SIZE)
 	|| in_range_p(addr, DYNAMIC_0_SPACE_START, dynamic_space_size)
diff --git a/src/lisp/elf.c b/src/lisp/elf.c
index 16e519635b5107a84ea98351acd1b3eb3cd607e5..130795ec7248fe6f24436a5c99205966081ce4b6 100644
--- a/src/lisp/elf.c
+++ b/src/lisp/elf.c
@@ -247,8 +247,7 @@ write_string_section(int fd)
     int ret;
 
     if(buffer == NULL) {
-
-	write(0, "Out of memory in write_string_section()\n", 40);
+	perror("Out of memory in write_string_section()");
 	ret = -1;
 
     } else {
diff --git a/src/lisp/interrupt.c b/src/lisp/interrupt.c
index f03e27ef080088479b77eb4e4f747c775da6a8c0..a87bc579a1481e56851138133d510d581a3eaeec 100644
--- a/src/lisp/interrupt.c
+++ b/src/lisp/interrupt.c
@@ -244,7 +244,9 @@ interrupt_handle_now_handler(HANDLER_ARGS)
 void
 interrupt_handle_now(HANDLER_ARGS)
 {
+#if !(defined(i386) || defined(__x86_64))
     int were_in_lisp;
+#endif
     ucontext_t *ucontext = (ucontext_t *) context;
     union interrupt_handler handler;
 
@@ -256,8 +258,8 @@ interrupt_handle_now(HANDLER_ARGS)
 	return;
 
     SAVE_CONTEXT();
-    /**/ were_in_lisp = !foreign_function_call_active;
 #if ! (defined(i386) || defined(_x86_64))
+    were_in_lisp = !foreign_function_call_active;
     if (were_in_lisp)
 #endif
 	fake_foreign_function_call(context);
diff --git a/src/lisp/search.c b/src/lisp/search.c
index 234207e3adb540f3eee2c4b90f7a95fb5ed2c58f..6b7c8550f72f3bd76e768b0bf458952671558883 100644
--- a/src/lisp/search.c
+++ b/src/lisp/search.c
@@ -14,12 +14,11 @@
 boolean
 search_for_type(int type, lispobj ** start, int *count)
 {
-    lispobj obj, *addr;
+    lispobj obj;
 
     while ((*count == -1 || (*count > 0)) &&
 	   valid_addr((os_vm_address_t) * start)) {
 	obj = **start;
-	addr = *start;
 	if (*count != -1)
 	    *count -= 2;
 
diff --git a/src/lisp/solaris-os.c b/src/lisp/solaris-os.c
index b28c3cc95b7c340ad5a60ae3c560e4d7eee17335..e3647f7e05bb8b87c89a9ce895e6d37f02d34e1f 100644
--- a/src/lisp/solaris-os.c
+++ b/src/lisp/solaris-os.c
@@ -185,11 +185,6 @@ in_range_p(os_vm_address_t a, lispobj sbeg, size_t slen)
 
 boolean valid_addr(os_vm_address_t addr)
 {
-    /* Stolen from Linux-os.c */
-    os_vm_address_t newaddr;
-
-    newaddr = os_trunc_to_page(addr);
-
     /* Just assume address is valid if it lies within one of the known
        spaces.  (Unlike sunos-os which keeps track of every valid page.) */
     return (in_range_p(addr, READ_ONLY_SPACE_START, read_only_space_size)