diff --git a/compiler/byte-comp.lisp b/compiler/byte-comp.lisp
index ec1bc25a53cef441675a4ece2237db952e37959f..1d6983dff2c8d51606dbfecc55c1decfb7f397db 100644
--- a/compiler/byte-comp.lisp
+++ b/compiler/byte-comp.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.40 2003/09/26 15:38:12 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.41 2003/10/09 11:12:32 gerd Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -143,10 +143,12 @@
 	  segment 2 1
 	  #'(lambda (segment posn delta)
 	      (declare (ignore segment) (type index posn delta))
-	      (when (zerop (- (new-assem:label-position label posn delta)
-			      posn 2))
+	      (when (and (eql kind byte-branch-always)
+			 (zerop (- (new-assem:label-position label posn delta)
+				   posn 2)))
 		;; Don't emit anything, because the branch is to the following
-		;; instruction.
+		;; instruction.  Only do this for unconditional branches,
+		;; because the conditional ones pop the byte stack.
 		t))
 	  #'(lambda (segment posn)
 	      ;; We know we fit in one byte.