diff --git a/README b/README
index b9857ad..e993a60 100644
--- a/README
+++ b/README
@@ -1,8 +1,8 @@
 -------------------------------------------------------------------------------
-flashrom README
+flashprog README
 -------------------------------------------------------------------------------
 
-flashrom is a utility for detecting, reading, writing, verifying and erasing
+flashprog is a utility for detecting, reading, writing, verifying and erasing
 flash chips. It is often used to flash BIOS/EFI/coreboot/firmware images
 in-system using a supported mainboard, but it also supports flashing of network
 cards (NICs), SATA controller cards, and other external devices which can
@@ -12,25 +12,25 @@
 SOIC16, WSON8, PLCC32, DIP32, TSOP32, and TSOP40 packages), which use various
 protocols such as LPC, FWH, parallel flash, or SPI.
 
-Do not use flashrom on laptops (yet)! The embedded controller (EC) present in
+Do not use flashprog on laptops (yet)! The embedded controller (EC) present in
 many laptops might interact badly with any attempts to communicate with the
 flash chip and may brick your laptop.
 
 Please make a backup of your flash chip before writing to it.
 
-Please see the flashrom(8) manpage.
+Please see the flashprog(8) manpage.
 
 
 Packaging
 ---------
 
-To package flashrom and remove dependencies on Git, either use
+To package flashprog and remove dependencies on Git, either use
 make export
 or
 make tarball
 
-'make export' will export all flashrom files from the Git repository at
-revision HEAD into a directory named "$EXPORTDIR/flashrom-$RELEASENAME"
+'make export' will export all flashprog files from the Git repository at
+revision HEAD into a directory named "$EXPORTDIR/flashprog-$RELEASENAME"
 and will additionally add a "versioninfo.inc" file in that directory to
 contain the Git revision of the exported tree and a date for the manual
 page.
@@ -45,7 +45,7 @@
 Build Instructions
 ------------------
 
-To build flashrom you need to install the following software:
+To build flashprog you need to install the following software:
 
  * pciutils+libpci (if you want support for mainboard or PCI device flashing)
  * libusb (if you want FT2232, Dediprog or USB-Blaster support)
@@ -111,24 +111,24 @@
  You will need the libpci and libgetopt library source trees and
  their compiled static libraries and header files installed in some
  directory say libpci-libgetopt/, which will be later specified with
- LIBS_BASE parameter during flashrom compilation. Easiest way to
- handle it is to put pciutils, libgetopt and flashrom directories
+ LIBS_BASE parameter during flashprog compilation. Easiest way to
+ handle it is to put pciutils, libgetopt and flashprog directories
  in one subdirectory. There will be an extra subdirectory libpci-libgetopt
  created, which will contain compiled libpci and libgetopt.
 
- Download pciutils 3.5.6 and apply http://flashrom.org/File:Pciutils-3.5.6.patch.gz
+ Download pciutils 3.5.6 and apply http://flashprog.org/File:Pciutils-3.5.6.patch.gz
  Compile pciutils, using following command line:
 
  make ZLIB=no DNS=no HOST=i386-djgpp-djgpp CROSS_COMPILE=i586-pc-msdosdjgpp- \
      PREFIX=/ DESTDIR=$PWD/../libpci-libgetopt  \
      STRIP="--strip-program=i586-pc-msdosdjgpp-strip -s" install install-lib
 
- Download and compile with 'make' http://flashrom.org/File:Libgetopt.tar.gz
+ Download and compile with 'make' http://flashprog.org/File:Libgetopt.tar.gz
 
  Copy the libgetopt.a to ../libpci-libgetopt/lib and
  getopt.h to ../libpci-libgetopt/include
 
- Enter the flashrom directory.
+ Enter the flashprog directory.
 
  make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip \
 	LIBS_BASE=../libpci-libgetopt/ HAS_LIBPCI=yes CONFIG_LIBPCI_LDFLAGS=-lpci \
@@ -136,9 +136,9 @@
 
  If you like, you can compress the resulting executable with UPX:
 
- upx -9 flashrom.exe
+ upx -9 flashprog.exe
 
- To run flashrom.exe, download http://flashrom.org/File:Csdpmi7b.zip and
+ To run flashprog.exe, download http://flashprog.org/File:Csdpmi7b.zip and
  unpack CWSDPMI.EXE into the current directory or one in PATH.
 
 To cross-compile on Linux for Windows:
@@ -167,7 +167,7 @@
 Installation
 ------------
 
-In order to install flashrom and the manpage into /usr/local, type:
+In order to install flashprog and the manpage into /usr/local, type:
 
  make install
 
@@ -182,10 +182,10 @@
 Contact
 -------
 
-The official flashrom website is:
+The official flashprog website is:
 
-  http://www.flashrom.org/
+  http://www.flashprog.org/
 
 Available contact methods are
 
-  https://www.flashrom.org/Contact
+  https://www.flashprog.org/Contact
