Index: kdelibs-4.3.2/kinit/kinit.cpp
===================================================================
--- kdelibs-4.3.2.orig/kinit/kinit.cpp	2009-10-13 07:31:16.000000000 +0200
+++ kdelibs-4.3.2/kinit/kinit.cpp	2009-10-13 07:31:52.000000000 +0200
@@ -489,6 +489,13 @@
       init_startup_info( startup_id, name, envc, envs );
 #endif
 
+  // Don't run this inside the child process, it crashes on OS/X 10.6
+  const QByteArray docPath = QFile::encodeName(KGlobalSettings::documentPath());
+#ifdef Q_WS_MAC
+  QString bundlepath = s_instance->dirs()->findExe(QFile::decodeName(execpath));
+  QString argvexe = s_instance->dirs()->findExe(QString::fromLatin1(_name));
+#endif
+
   d.errorMsg = 0;
   d.fork = fork();
   switch(d.fork) {
@@ -513,7 +520,6 @@
      if (cwd && *cwd) {
          (void)chdir(cwd);
      } else {
-         const QByteArray docPath = QFile::encodeName(KGlobalSettings::documentPath());
          (void)chdir(docPath.constData());
      }
 
@@ -552,7 +558,6 @@
        d.argv = (char **) malloc(sizeof(char *) * (argc+1));
        d.argv[0] = (char *) _name;
 #ifdef Q_WS_MAC
-       QString argvexe = s_instance->dirs()->findExe(QString::fromLatin1(d.argv[0]));
        if (!argvexe.isEmpty()) {
           QByteArray cstr = argvexe.toLocal8Bit();
           kDebug(7016) << "kdeinit4: launch() setting argv: " << cstr.data();
@@ -628,7 +633,6 @@
 
         QByteArray executable = execpath;
 #ifdef Q_WS_MAC
-        QString bundlepath = s_instance->dirs()->findExe(QFile::decodeName(executable));
         if (!bundlepath.isEmpty())
            executable = QFile::encodeName(bundlepath);
 #endif

