diff --git a/var/spack/repos/builtin/packages/docbook-xml/package.py b/var/spack/repos/builtin/packages/docbook-xml/package.py
index 9c22174610f64202dd2ed00cb70978df9eb27b72..87137168f367fbfc0e037b45da292f2bcc71b873 100644
--- a/var/spack/repos/builtin/packages/docbook-xml/package.py
+++ b/var/spack/repos/builtin/packages/docbook-xml/package.py
@@ -23,7 +23,6 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 import os
-import glob
 from spack import *
 
 
@@ -35,9 +34,10 @@ class DocbookXml(Package):
     version('4.5', '03083e288e87a7e829e437358da7ef9e')
 
     def install(self, spec, prefix):
-        cp = which('cp')
-
-        install_args = ['-a', '-t', prefix]
-        install_args.extend(glob.glob('*'))
-
-        cp(*install_args)
+        for item in os.listdir('.'):
+            src = os.path.abspath(item)
+            dst = os.path.join(prefix, item)
+            if os.path.isdir(item):
+                install_tree(src, dst, symlinks=True)
+            else:
+                install(src, dst)