diff --git a/cabal-rpm.cabal b/cabal-rpm.cabal
--- a/cabal-rpm.cabal
+++ b/cabal-rpm.cabal
@@ -1,5 +1,5 @@
 Name: cabal-rpm
-Version: 0.2.3
+Version: 0.2.4
 License: GPL
 License-File: COPYING
 Author: Bryan O'Sullivan <bos@serpentine.com>
diff --git a/src/Distribution/Package/Rpm.hs b/src/Distribution/Package/Rpm.hs
--- a/src/Distribution/Package/Rpm.hs
+++ b/src/Distribution/Package/Rpm.hs
@@ -321,6 +321,8 @@
     putNewline
     putNewline
 
+    docs <- findDocs pkgDesc
+
     put "%install"
     put "rm -rf ${RPM_BUILD_ROOT}"
     putSetup "copy --destdir=${RPM_BUILD_ROOT}"
@@ -330,18 +332,20 @@
         put "echo '%defattr(-,root,root,-)' > %{_builddir}/%{?buildsubdir}/%{name}-files.prof"
         put "find .%{pkg_libdir} \\( -name '*_p.a' -o -name '*.p_hi' \\) | sed s/^.// >> %{_builddir}/%{?buildsubdir}/%{name}-files.prof"
         put "echo '%defattr(-,root,root,-)' > %{_builddir}/%{?buildsubdir}/%{name}-files.nonprof"
-        put "find .%{pkg_libdir} ! \\( -name '*_p.a' -o -name '*.p_hi' \\) | sed s/^.// >> %{_builddir}/%{?buildsubdir}/%{name}-files.nonprof"
+        put "find .%{pkg_libdir} -type d | sed 's/^./%dir /' >> %{_builddir}/%{?buildsubdir}/%{name}-files.nonprof"
+        put "find .%{pkg_libdir} ! \\( -type d -o -name '*_p.a' -o -name '*.p_hi' \\) | sed s/^.// >> %{_builddir}/%{?buildsubdir}/%{name}-files.nonprof"
         put "sed 's,^/,%exclude /,' %{_builddir}/%{?buildsubdir}/%{name}-files.prof >> %{_builddir}/%{?buildsubdir}/%{name}-files.nonprof"
-    put "rm -rf ${RPM_BUILD_ROOT}/%{_datadir}/%{pkg_name}-%{version}/doc"
     putNewline
+    put "cd ${RPM_BUILD_ROOT}/%{_datadir}/%{pkg_name}-%{version}"
+    put $ "rm -rf doc " ++ concat (intersperse " " docs)
     putNewline
+    putNewline
 
     put "%clean"
     put "rm -rf ${RPM_BUILD_ROOT}"
     putNewline
     putNewline
 
-    docs <- findDocs pkgDesc
     withLib pkgDesc () $ \_ -> do
         {- If we're upgrading to a library with the same Cabal
            name+version as the currently installed library (i.e. we've
