diff --git a/compiler/vop.lisp b/compiler/vop.lisp
index cfe89de31a903e539bfe0f93a7bf7372b7912124..98c57646501acc93402ea6c7861a8852277a4138 100644
--- a/compiler/vop.lisp
+++ b/compiler/vop.lisp
@@ -408,8 +408,18 @@
   ;;
   ;; A list of all the IR2-Blocks in this environment, threaded by
   ;; IR2-Block-Environment-Next.  This is filled in by control analysis.
-  (blocks nil :type (or ir2-block null)))
-
+  (blocks nil :type (or ir2-block null))
+  ;;
+  ;; A label that marks the start of elsewhere code for this function.  Null
+  ;; until this label is assigned by codegen.  Used for maintaining the debug
+  ;; source map.
+  (elsewhere-start nil :type (or label null))
+  ;;
+  ;; A label that marks the first location in this function at which the
+  ;; environment is properly initialized, i.e. arguments moved from their
+  ;; passing locations, etc.  This is the start of the function as far as the
+  ;; debugger is concerned.
+  (environment-start nil :type (or label null)))
 
 (defprinter ir2-environment
   arg-locs