Index: main/cdk.lisp
===================================================================
--- main/cdk.lisp	(revision main,28)
+++ main/cdk.lisp	(revision main,29)
@@ -29,5 +29,4 @@
 
 
-(defcfun ("start_color" c-curs-start-color) :int)
 
 
Index: main/window/screen.lisp
===================================================================
--- main/window/screen.lisp	(revision main,28)
+++ main/window/screen.lisp	(revision main,29)
@@ -18,4 +18,11 @@
 (defcfun "initscr" :pointer)
 
+(defcfun "start_color" :int)
+
+(defcfun "init_pair" :int
+  (pair :short)
+  (f :short)
+  (b :short))
+
 (defcfun "endwin" :int)
 
@@ -26,4 +33,8 @@
          (signal 'screen-initialization-error))
        (unwind-protect
+            (start-color)
+            (dotimes (i 63)
+              (let ((j (1+ i)))
+                (init-pair j (floor j 8) (mod j 8))))
             (let ((,screen (make-instance 'screen-window :ptr ,ptr)))
               ,@body)
@@ -68,5 +79,5 @@
     `(let ((,ptr (newwin ,height ,width ,y ,x)))
        (when (null-pointer-p ,ptr)
-         (signal screen-window-creation-error))
+         (signal 'screen-window-creation-error))
        (let ((,window (make-instance 'screen-window :ptr ,ptr)))
          (unwind-protect (progn ,@body)
