Another observation that this is a specific solution to the OP's issue is that can't be just cut-n-pasted without thinking it through:
Code:
PORTE = %111                 ; turn off all digits to prevent ghosting
  PORTC = SEGDEF(digitloop)    ; put segment pattern to pin
  PORTE = ~(DCD digitloop)     ; turn on the digit
my application is common cathode and it uses a ULN2803 as a driver for the cathodes of the digits. If I hadn't looked at it and tried to understand it, I could have easily have turned on ALL BUT ONE of the displays instead of ONE AT A TIME. Mine is also, 8 digits, so it matters a bit more for the PIC pin. Not a complaint in any way, more of a way to close the loop for anyone looking at it later. BTW: very slick way to step through the digits. Learned something new today.
Mark