diff --git a/clx/resource.lisp b/clx/resource.lisp
index 8de345c996cb59348839bd5ee7babfef88e93641..a154cae19dc1fbf7a8d1dad7dba556b9f3a6473d 100644
--- a/clx/resource.lisp
+++ b/clx/resource.lisp
@@ -676,7 +676,9 @@
 		      :write write :test test :test-not test-not)
     database))
 
-(defsetf root-resources set-root-resources)
+(defsetf root-resources (screen &key test test-not (write #'princ))(database)
+  `(set-root-resources
+    ,screen :test ,test :test-not ,test-not :write ,write :database ,database))
 
 (defun initialize-resource-database (display)
   ;; This function is (supposed to be) equivalent to the Xlib initialization