diff --git a/mcclim.asd b/mcclim.asd
index 03d8148..effb0d7 100644
--- a/mcclim.asd
+++ b/mcclim.asd
@@ -381,18 +381,22 @@
                (:file "graft" :depends-on ("port" "package"))
                (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
 #+clisp
-(defmethod asdf::traverse :around ((op compile-op) (c (eql (find-system :clim-clx))))
-  ;; Just some random symbol I know is unexported in CLISP's CLX.
-  (if (eq (nth-value 1 (find-symbol "SET-SELECTION-OWNER" :xlib))
-       :external)
-      (call-next-method)
-      (restart-case (error "Your CLX is not capable of running the McCLIM CLX backend")
-        (load-clx-via-asdf ()
-         :report "Try replacing your CLX with a CLX loaded through ASDF, hopefully this will be Telent CLX."
-         (ext:without-package-lock ("XLIB")
-           (delete-package :xlib)
-           (asdf:oos 'asdf:load-op :clx))
-         (call-next-method)))))
+(defmethod asdf::traverse :around ((op compile-op) 
+				   (c (eql (find-system :clim-clx))))
+  ;; clisp may be compiled with or without it's own CLX implementation
+  (if (find-package :xlib)
+      ;; Just some random symbol I know is unexported in CLISP's CLX.
+      (unless (eq (nth-value 1 (find-symbol "SET-SELECTION-OWNER" :xlib))
+		  :external)
+	(restart-case 
+	    (error "CLISP already has CLX but it is not capable of running the McCLIM CLX backend")
+	  (load-clx-via-asdf ()
+	    :report "Try replacing your CLX with a CLX loaded through ASDF, hopefully this will be Telent CLX."
+	    (ext:without-package-lock ("XLIB")
+	      (delete-package :xlib)
+	      (asdf:oos 'asdf:load-op :clx)))))
+      (asdf:oos 'asdf:load-op :clx))
+  (call-next-method))
 
 (defsystem :clim-beagle
   :depends-on (clim)
@@ -526,7 +530,7 @@
     :depends-on (:clim :clim-postscript
                  ;; If we're on an implementation that ships CLX, use
                  ;; it. Same if the user has loaded CLX already.
-                 #+(and (or sbcl scl openmcl ecl clx allegro)
+                 #+(and (or sbcl scl openmcl ecl clx allegro clisp)
 			(not (or clim-gtkairo clim-graphic-forms clim-beagle)))
 		 :clim-clx
                  #+clim-graphic-forms             :clim-graphic-forms
