diff --git a/lib/spack/spack/cmd/spec.py b/lib/spack/spack/cmd/spec.py
index e2cb5689c05bc576993097c15f7bd4e69c2f2e04..407519313cee65fd4dd0f486e4e0e7ffad10fd46 100644
--- a/lib/spack/spack/cmd/spec.py
+++ b/lib/spack/spack/cmd/spec.py
@@ -33,20 +33,27 @@
 description = "print out abstract and concrete versions of a spec."
 
 def setup_parser(subparser):
+    subparser.add_argument('-i', '--ids', action='store_true',
+                           help="show numerical ids for dependencies.")
     subparser.add_argument('specs', nargs=argparse.REMAINDER, help="specs of packages")
 
+
 def spec(parser, args):
+    kwargs = { 'ids'    : args.ids,
+               'indent' : 2,
+               'color'  : True }
+
     for spec in spack.cmd.parse_specs(args.specs):
         print "Input spec"
         print "------------------------------"
-        print spec.tree(color=True, indent=2)
+        print spec.tree(**kwargs)
 
         print "Normalized"
         print "------------------------------"
         spec.normalize()
-        print spec.tree(color=True, indent=2)
+        print spec.tree(**kwargs)
 
         print "Concretized"
         print "------------------------------"
         spec.concretize()
-        print spec.tree(color=True, indent=2)
+        print spec.tree(**kwargs)