diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index c403d89..fb80173 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -87,21 +87,6 @@
 else:
 	_unicode = unicode
 
-COWSAY_MOO = """
-
-  Larry loves Gentoo (%s)
-
- _______________________
-< Have you mooed today? >
- -----------------------
-        \   ^__^
-         \  (oo)\_______
-            (__)\       )\/\ 
-                ||----w |
-                ||     ||
-
-"""
-
 def action_build(settings, trees, mtimedb,
 	myopts, myaction, myfiles, spinner):
 
@@ -3522,13 +3507,6 @@
 
 	del mytrees, mydb
 
-	if "moo" in myfiles:
-		print(COWSAY_MOO % platform.system())
-		msg = ("The above `emerge moo` display is deprecated. "
-			"Please use `emerge --moo` instead.")
-		for line in textwrap.wrap(msg, 50):
-			print(" %s %s" % (colorize("WARN", "*"), line))
-
 	for x in myfiles:
 		ext = os.path.splitext(x)[1]
 		if (ext == ".ebuild" or ext == ".tbz2") and \
@@ -3538,10 +3516,8 @@
 			break
 
 	root_config = trees[settings['EROOT']]['root_config']
-	if myaction == "moo":
-		print(COWSAY_MOO % platform.system())
-		return os.EX_OK
-	elif myaction == "list-sets":
+
+	if myaction == "list-sets":
 		writemsg_stdout("".join("%s\n" % s for s in sorted(root_config.sets)))
 		return os.EX_OK
 	elif myaction == "check-news":
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index d31d99a..ef91fc6 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -3,6 +3,7 @@
 
 from __future__ import print_function
 
+import platform
 import sys
 
 import portage
@@ -67,6 +68,21 @@
 "v":"--verbose",   "V":"--version"
 }
 
+COWSAY_MOO = """
+
+  Larry loves Gentoo (%s)
+
+ _______________________
+< Have you mooed today? >
+ -----------------------
+        \   ^__^
+         \  (oo)\_______
+            (__)\       )\/\ 
+                ||----w |
+                ||     ||
+
+"""
+
 def multiple_actions(action1, action2):
 	sys.stderr.write("\n!!! Multiple actions requested... Please choose one only.\n")
 	sys.stderr.write("!!! '%s' or '%s'\n\n" % (action1, action2))
@@ -982,6 +998,9 @@
 	if myaction == "help":
 		emerge_help()
 		return os.EX_OK
+	elif myaction == "moo":
+		print(COWSAY_MOO % platform.system())
+		return os.EX_OK
 
 	# Portage needs to ensure a sane umask for the files it creates.
 	os.umask(0o22)
