diff --git a/tools/cross-scripts/cross-x86-x86.lisp b/tools/cross-scripts/cross-x86-x86.lisp
index a7daefc2bce708c0c84a2903358fcf58058c9cad..aa4d84df854b0d8f088ce414c20964b8f06e68af 100644
--- a/tools/cross-scripts/cross-x86-x86.lisp
+++ b/tools/cross-scripts/cross-x86-x86.lisp
@@ -36,6 +36,16 @@
 ;;; Compile the new backend.
 (pushnew :bootstrap *features*)
 (pushnew :building-cross-compiler *features*)
+
+;; Make fixup-code-object and sanctify-for-execution in the VM package
+;; be the same as the original.  Needed to get rid of a compiler error
+;; in generic/core.lisp.  (This halts cross-compilations if the
+;; compiling lisp uses the -batch flag.
+(import 'old-vm::fixup-code-object "VM")
+(import 'old-vm::sanctify-for-execution "VM")
+(export 'vm::fixup-code-object "VM")
+(export 'vm::sanctify-for-execution "VM")
+
 (load "target:tools/comcom")
 
 ;;; Load the new backend.
@@ -193,8 +203,6 @@
   (declare (type simple-string name))
   name)
 (export 'extern-alien-name)
-(export 'fixup-code-object)
-(export 'sanctify-for-execution)
 (in-package :cl-user)
 
 ;;; Don't load compiler parts from the target compilation