diff --git a/compiler/old-rt/assem-macs.lisp b/compiler/old-rt/assem-macs.lisp
index be740b0c6cfb03a5ddb661e4bcc900f4b5c000eb..ee457222d289c5122ad1a5462c6ff187fb3c5392 100644
--- a/compiler/old-rt/assem-macs.lisp
+++ b/compiler/old-rt/assem-macs.lisp
@@ -266,14 +266,15 @@
        (loadi (first register-argument-tns) ,n-error-code))))
 
 
-(defmacro generate-error-code (node error-code &rest values)
-  "Generate-Error-Code Node Error-code Value*
+(defmacro generate-error-code (vop error-code &rest values)
+  "Generate-Error-Code VOP Error-code Value*
   Emit code for an error with the specified Error-Code and context Values.
-  Node is used for source context."
-  `(unassemble
-     (assemble-elsewhere ,node
-       (let ((start-lab (gen-label)))
-	 (emit-label start-lab)
-	 (error-call ,error-code ,@values)
-	 start-lab))))
+  VOP is used for source context and lifetime information."
+  (once-only ((n-vop vop))
+    `(unassemble
+       (assemble-elsewhere (vop-node ,n-vop)
+	 (let ((start-lab (gen-label)))
+	   (emit-label start-lab)
+	   (error-call ,error-code ,@values)
+	   (note-this-location ,n-vop :internal-error)
 	   start-lab)))))
\ No newline at end of file