When I install it, an error message comes up saying

''Service Pack 2 Setup Error

The core system file (kernel) used to start this computer is not a Microsoft Windows file. The Service Pack will not be installed. For more information, see the Knowledge Base article at http://support.microsoft.com.''

Is there anything I can do to install it?

I am currently running XP Home Edition SP1.

Please post a copy of your boot.ini file : go cp, system, advanced tab, startup n recovery settings, press edit -okay, post that notepad that opens.

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Home Edition (bootscreen)" /fastdetect /KERNEL=kernel1.exe
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect
C:\CMDCONS\BOOTSECT.DAT="Microsoft Windows Recovery Console" /cmdcons

go to run and type: sfc /scannow

you will need to reboot once its done. It wont tell you if it is sucessful or not. You may need your windows cd.

Okay. Get that notepad back again, then delete this bit:
/KERNEL=kernel1.exe
-and save the file. This removes that reference to kernel1.exe from your boot.ini file. Should be ok to go then.
jb's idea should work also if you have used some software to modify a protected file...

gerbil i did what you said, but i still couldn't install it, and i couldn't do the other suggestion cos i dont have my cd, its packed away somewhere.

i did do what you said, but i needed my cd but i cant find it

well your out of luck then, without the cd theres no way you will be able to replace your kernel to install SP2.

there is the chance that the bootscreen app you employed has damaged your ntoskernel... borrow an xp cd to run the sfc. did your amendment to boot.ini take? You may need to uninstall the modifying software if it did not. But M$ is alway re-issuing it inside KB articles... you should be able to get one from windows update site. kernel32.dll is what you need.