diff --git a/component/libreoffice-bin/buildout.cfg b/component/libreoffice-bin/buildout.cfg
index ada1e601a7e128950f2a929f743273dc84d67eba..b5604c2e0b7920a1864e8d0ba52fe3b68afd7c7e 100644
--- a/component/libreoffice-bin/buildout.cfg
+++ b/component/libreoffice-bin/buildout.cfg
@@ -1,24 +1,45 @@
 [buildout]
-extends = ../cpio/buildout.cfg
+extends =
+  ../cpio/buildout.cfg
+  ../rpm2cpio/buildout.cfg
+
 parts =
   libreoffice-bin
 
 find-links =
   http://www.nexedi.org/static/packages/source/
 
-versions = versions
-
-[versions]
-# special version of z3c.recipe.openoffice with architecture autodetection
-z3c.recipe.openoffice = 0.3.1dev8
-
 [libreoffice-bin]
-recipe = z3c.recipe.openoffice
-install-javafilter = no
-install-pyuno-egg = no
-hack-openoffice-python = no
-flavour = libreoffice
+recipe = slapos.recipe.build
 # here, two %s are used, first one is for directory name (eg. x86_64), and second one is for filename (eg. x86-64).
-# base-url = http://download.documentfoundation.org/libreoffice/stable/3.3.2/rpm/%s/LibO_3.3.2_Linux_%s_install-rpm_en-US.tar.gz
+version = 3.4.5
+url = http://download.documentfoundation.org/libreoffice/stable/${:version}/rpm/%s/LibO_${:version}_Linux_%s_install-rpm_en-US.tar.gz
+
+# supported architectures md5sums
+md5sum_x86 = 34786e6aa570782abac551ab092f3fb3
+md5sum_x86-64 = 2159a50daab707c02b669a83f635ff0c
+
+# where office code can be found?
+officedir = libreoffice3.4
+
+# script to install
+script =
+  location = %(location)r
+  self.failIfPathExists(location)
+  import sys
+  ARCH_DIR_MAP = { 'x86': 'x86', 'x86-64': 'x86_64' }
+  platform = guessPlatform()
+  url = self.options['url'] %% (ARCH_DIR_MAP[platform], platform)
+  md5sum = self.options['md5sum_' + platform]
+  extract_dir = self.extract(self.download(url, md5sum))
+  workdir = guessworkdir(extract_dir)
+  storagedir = os.path.join(workdir, 'storage')
+  os.mkdir(storagedir)
+  rpmsdir = os.path.join(workdir, [q for q in os.listdir(workdir) if q == 'RPMS'][0])
+  rpmlist = [os.path.join(rpmsdir, q) for q in os.listdir(rpmsdir) if q.endswith('.rpm') and 'javafilter' not in q and 'xsltfilter' not in q]
+  [self.pipeCommand([[sys.executable, '${:rpm2cpio}', rpm], ['${:cpio}', '-idum']], cwd=storagedir) for rpm in rpmlist]
+  self.copyTree(os.path.join(storagedir, 'opt', '${:officedir}'), location, ['basis3.4', 'ure'])
 
+# helper binaries
 cpio = ${cpio:location}/bin/cpio
+rpm2cpio = ${rpm2cpio:target}