diff --git a/uiop/os.lisp b/uiop/os.lisp
index 2a714b22658abf8c2083d567e90aaa0d0833171e..522f4a388e3684ed2b8be4a45ae2713db45854b2 100644
--- a/uiop/os.lisp
+++ b/uiop/os.lisp
@@ -146,10 +146,13 @@ then returning the non-empty string value of the variable"
   (defun operating-system ()
     "The operating system of the current host"
     (first-feature
-     '(:cygwin (:win :windows :mswindows :win32 :mingw32) ;; try cygwin first!
+     '(:cygwin
+       (:win :windows :mswindows :win32 :mingw32) ;; try cygwin first!
        (:linux :linux :linux-target) ;; for GCL at least, must appear before :bsd
        (:macosx :macosx :darwin :darwin-target :apple) ; also before :bsd
-       (:solaris :solaris :sunos) (:bsd :bsd :freebsd :netbsd :openbsd) :unix
+       (:solaris :solaris :sunos)
+       (:bsd :bsd :freebsd :netbsd :openbsd :dragonfly)
+       :unix
        :genera)))
 
   (defun architecture ()