I've been on vacation for the past two weeks; that's why you haven't heard too much follow up on this subject. Brent, thanx for resending the note from Darrell. Actually, it really helped me see what was going on. As it turns out, I *am* writing successfully to the EEPROM. However, in doing this, I discovered a couple of things. The first is, when MPLAB is in "Simulator" mode (as opposed to "Editor" mode), the EEPROM seems to be programmed always to 0x0FF. Has anybody else seen this? I think this has been the cause of a lot of my problems, difficulty in understanding what's going on. The second issue is, the "wrerr" bit always seems to be set after the write. I have disabled the WDT - which is a fancy way of saying I haven't enabled it or changed the option register. And, I execute a "clrwdt" in the final polling loop. My code does the following: Setup PortB as all Output to 8 LEDs display 0x055/0x0AA with delays in between to show that the EEPROM is working reads and displays EEPROM address 0 waits for a button (which pulls down a pull-up) to be pressed increments the contents of EEPROM adress 0 writes the contents back into the EEPROM polls EECON1 and displays it's contents in an infinite loop. I have control over _MCLR, so I can re-run this continuously and see what happens. I have been able to read the contents of the EEPROM using PICStart Plus and MPLAB (in "Editor" Mode). Now, my next course of action is to see is if "wr" is reset while "wrerr" is reset. Could my constant polling of the register be causing a problem? The code I use to poll is: Loop movlw 0x0FF xorwf EECON1 & 0x07F, w ; Get "EECON1" for Display on the LEDs bcf STATUS, RP0 movwf PORTB ; Display EECON1 on the LEDs bsf STATUS, RP0 goto $ Thanx for everybody's help. Myke Do you ever feel like an XT Clone caught in the Pentium Pro Zone?