diff --git a/Library/Homebrew/macos.rb b/Library/Homebrew/macos.rb
index f5304430ba77eb09893d530d63051e57ebfe898a..1fd7d928f61e6cb6ab88c2c7295a8d97c7ffa8b8 100644
--- a/Library/Homebrew/macos.rb
+++ b/Library/Homebrew/macos.rb
@@ -3,7 +3,8 @@ module MacOS extend self
   MDITEM_BUNDLE_ID_KEY = "kMDItemCFBundleIdentifier"
 
   def version
-    MACOS_VERSION
+    require 'version'
+    MacOSVersion.new(MACOS_VERSION.to_s)
   end
 
   def cat
diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb
index ab6f83991bfd4b85b5d066f49366f38200b791d6..972ce130b4d3b50d7bcced776c42d56e6a8ffdcf 100644
--- a/Library/Homebrew/test/test_versions.rb
+++ b/Library/Homebrew/test/test_versions.rb
@@ -24,6 +24,13 @@ class VersionComparisonTests < Test::Unit::TestCase
     assert_version_comparison 'HEAD', '>', '1.2.3'
     assert_version_comparison '1.2.3', '<', 'HEAD'
   end
+
+  def test_macos_version_comparison
+    v = MacOSVersion.new(10.6)
+    assert v == 10.6
+    assert v == :snow_leopard
+    assert v < :lion
+  end
 end
 
 class VersionParsingTests < Test::Unit::TestCase
diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb
index 7936efc80e4ccf20f8baa5771d0ec98570ff1349..30e41392a27e42101dfdda7db0ea70b93daedfc9 100644
--- a/Library/Homebrew/version.rb
+++ b/Library/Homebrew/version.rb
@@ -154,3 +154,21 @@ class VersionSchemeDetector
     raise "Unknown version scheme #{@scheme} was requested."
   end
 end
+
+# Enable things like "MacOS.version >= :lion"
+class MacOSVersion < Version
+  compare do |other|
+    case other
+    when Symbol, Fixnum, Float, Version
+    super Version.new case other
+      when :mountain_lion then 10.8
+      when :lion then 10.7
+      when :snow_leopard then 10.6
+      when :leopard then 10.5
+      else other
+      end
+    else
+      nil
+    end
+  end
+end