diff --git a/scheme/xlib/gcontext.scm b/scheme/xlib/gcontext.scm
index f33b15d..5b7f476 100644
--- a/scheme/xlib/gcontext.scm
+++ b/scheme/xlib/gcontext.scm
@@ -2,7 +2,7 @@
 
 (define (create-gcontext . args)
   (let ((alist (named-args->alist args)))
-    (receive (drawable rest) (alist-split '((drawable . #f)))
+    (receive (drawable rest) (alist-split alist '((drawable . #f)))
       (let* ((rest (map cons
 			(map car rest)
 			(map (lambda (obj)
@@ -119,7 +119,7 @@
 
 (define (make-gcontext-setter name)
   (lambda (gcontext value)
-    (change-gcontext gcontext (cons name value))))
+    (change-gcontext gcontext (list (cons name value)))))
 
 (define set-gcontext-function! (make-gcontext-setter 'function))
 (define set-gcontext-plane-mask! (make-gcontext-setter 'plane-mask))