--- root/etc/init.d/firstboot.orig	2007-08-11 23:33:11.000000000 -1000
+++ root/etc/init.d/firstboot	2008-01-17 09:13:55.000000000 -1000
@@ -2,7 +2,7 @@
 #
 # firstboot:         Starts the firstboot druid if it hasn't been run before
 #
-# chkconfig: 35 99 95
+# chkconfig: 345 99 95
 #
 # description:       Firstboot is a druid style program that runs on the first time \
 #                    a machine is booted after install.  It checks for the existence \
--- root/usr/sbin/firstboot.orig	2008-02-08 12:07:23.000000000 -1000
+++ root/usr/sbin/firstboot	2008-02-08 12:10:21.000000000 -1000
@@ -96,9 +96,12 @@
     # reconfig mode from a terminal under an already running X setup.
     # Otherwise, run in text mode if in runlevel 3, or take over rhgb's X
     # server if running, or start up our own if not.
+    # Addition to DocoMomo: just go through automatic configure in runlevel 4.
     if os.environ.has_key("DISPLAY") or fb.doDebug:
         from firstbootWindow import firstbootWindow
         firstbootWindow(fb)
+    elif getRunlevel() == 4:
+        fb.configure()
     elif (getRunlevel() == 3 and not fb.forcegui) or noX == True:
         fb.runTextUI()
     elif rhgbIsRunning():
--- root/usr/share/firstboot/firstboot.py.orig	2008-02-08 12:11:57.000000000 -1000
+++ root/usr/share/firstboot/firstboot.py	2008-02-08 12:11:42.000000000 -1000
@@ -105,3 +105,16 @@
             # Timer expired.  Don't remove the reconfig file if it exists.
             screen.finish()
             os._exit(0)
+
+    # Runs configuration.  The caller will never be
+    # returned to and firstboot will exit from within here.
+    def configure(self):
+        firstbootBackend.writeSysconfigFile(self.doDebug)
+
+        if self.doReconfig:
+            try:
+                os.unlink("/etc/reconfigSys")
+            except:
+                pass
+
+        os._exit(0)
