Index: /trunk/source/cocoa-ide/app-delegate.lisp
===================================================================
--- /trunk/source/cocoa-ide/app-delegate.lisp	(revision 14224)
+++ /trunk/source/cocoa-ide/app-delegate.lisp	(revision 14225)
@@ -59,9 +59,6 @@
   (declare (ignore notification))
   (initialize-user-interface)
-  (let* ((event (#_CGEventCreate +null-ptr+))
-	 (flags (#_CGEventGetFlags event)))
-    (unless (logtest flags #$kCGEventFlagMaskShift)
-      (load-ide-init-file))
-    (#_CFRelease event)))
+  (unless (shift-key-p)
+    (load-ide-init-file)))
 
 (objc:defmethod (#/applicationWillTerminate: :void)
Index: /trunk/source/cocoa-ide/cocoa-utils.lisp
===================================================================
--- /trunk/source/cocoa-ide/cocoa-utils.lisp	(revision 14224)
+++ /trunk/source/cocoa-ide/cocoa-utils.lisp	(revision 14225)
@@ -411,3 +411,14 @@
     (>= (%get-long p) #x1050)))
 
-
+;; This works even if an event loop is not running.
+#-cocotron
+(defun shift-key-p ()
+  (let* ((event (#_CGEventCreate +null-ptr+))
+	 (flags (#_CGEventGetFlags event)))
+    (prog1
+	(logtest flags #$kCGEventFlagMaskShift)
+      (#_CFRelease event))))
+
+#+cocotron
+(defun shift-key-p ()
+  nil)
Index: /trunk/source/cocoa-ide/start.lisp
===================================================================
--- /trunk/source/cocoa-ide/start.lisp	(revision 14224)
+++ /trunk/source/cocoa-ide/start.lisp	(revision 14225)
@@ -82,5 +82,6 @@
 
 (defmethod ccl::application-init-file ((a cocoa-application))
-  '("home:ccl-init" "home:\\.ccl-init"))
+  (unless (shift-key-p)
+    '("home:ccl-init" "home:\\.ccl-init")))
 
 ;;; If we're launched via the Finder, the only argument we'll
