diff --git a/classes/catkin.bbclass b/classes/catkin.bbclass
index b22b19e354724895e773c66dac5121ebb1c8ff75..7c55d5dd22d229f4e8720fe84c60c3c86a5a334e 100644
--- a/classes/catkin.bbclass
+++ b/classes/catkin.bbclass
@@ -4,7 +4,7 @@
 
 inherit cmake distutils-base ros faulty-solibs
 
-DEPENDS_prepend = "${@['catkin-native ', ''][d.getVar('BPN', True) == 'catkin']}"
+DEPENDS_prepend = "${@['catkin-native ', ''][(d.getVar('BPN', True) == 'catkin') | (d.getVar('BPN', True) == 'catkin-runtime')]}"
 
 EXTRA_OECMAKE_CATKIN = "\
     -DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}${ros_prefix};${STAGING_DIR_HOST}${prefix};${STAGING_DIR_NATIVE}${ros_prefix};${STAGING_DIR_NATIVE}${prefix}' \
diff --git a/recipes-ros/catkin/catkin-runtime_0.5.90.bb b/recipes-ros/catkin/catkin-runtime_0.5.90.bb
new file mode 100644
index 0000000000000000000000000000000000000000..f2f1f777de7828a0dd98a797792628d0bbc753f4
--- /dev/null
+++ b/recipes-ros/catkin/catkin-runtime_0.5.90.bb
@@ -0,0 +1,22 @@
+ROS_SPN = "catkin"
+
+require catkin.inc
+
+S = "${WORKDIR}/catkin-${PV}"
+
+# This package includes ONLY the python packages.
+# The catkin_${PV} package includes all other files
+# from the catkin tool.
+FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}"
+
+RDEPENDS_${PN} = "\
+    python-catkin-pkg python-argparse python-misc python-multiprocessing \
+    python-shell python-subprocess python-xml python-pkgutil"
+
+# Delete everything but the python packages in order to avoid
+# that the QA error [installed-vs-shipped] hits on us.
+do_install_append() {
+    rm -rf ${D}${ros_bindir}
+    rm -rf ${D}${ros_datadir}
+    rm -rf ${D}${ros_libdir}/pkgconfig
+}
diff --git a/recipes-ros/catkin/catkin.inc b/recipes-ros/catkin/catkin.inc
new file mode 100644
index 0000000000000000000000000000000000000000..6397868cd8a0f437193598d0196b26f9a506bb73
--- /dev/null
+++ b/recipes-ros/catkin/catkin.inc
@@ -0,0 +1,26 @@
+DESCRIPTION = "Low-level build system macros and infrastructure for ROS"
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "cmake python-empy python-catkin-pkg python-empy-native python-catkin-pkg-native"
+
+SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "a0dd74c4a665a56b02af9f8c873c451d"
+SRC_URI[sha256sum] = "71441206945e8d77dace831375effde5b5f54b95e3a054106848432eceec58c0"
+
+SRC_URI += "file://0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch"
+
+inherit catkin
+
+FILES_${PN}-dev += "\
+    ${ros_datadir}/eigen/cmake \
+    ${ros_datadir}/ros/cmake \
+    ${ros_datadir}/.catkin \
+    ${ros_prefix}/.catkin \
+    ${ros_prefix}/.rosinstall \
+    ${ros_prefix}/_setup_util.py \
+    ${ros_prefix}/env.sh \
+    ${ros_prefix}/setup.* \
+    "
+
diff --git a/recipes-ros/catkin/catkin_0.5.90.bb b/recipes-ros/catkin/catkin_0.5.90.bb
index 77b71cc2967a3f8374730302a84de0588be3e313..20ab6522f41675108fbdd98e39778005535bdce5 100644
--- a/recipes-ros/catkin/catkin_0.5.90.bb
+++ b/recipes-ros/catkin/catkin_0.5.90.bb
@@ -1,32 +1,20 @@
-DESCRIPTION = "Low-level build system macros and infrastructure for ROS"
-SECTION = "devel"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
+require catkin.inc
 
-DEPENDS = "cmake python-empy python-catkin-pkg python-empy-native python-catkin-pkg-native"
 
-SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
-SRC_URI[md5sum] = "a0dd74c4a665a56b02af9f8c873c451d"
-SRC_URI[sha256sum] = "71441206945e8d77dace831375effde5b5f54b95e3a054106848432eceec58c0"
-
-SRC_URI += "file://0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch"
-
-inherit catkin
-
-FILES_${PN}-dev += "\
-    ${ros_datadir}/eigen/cmake \
-    ${ros_datadir}/ros/cmake \
-    ${ros_datadir}/.catkin \
-    ${ros_prefix}/.catkin \
-    ${ros_prefix}/.rosinstall \
-    ${ros_prefix}/_setup_util.py \
-    ${ros_prefix}/env.sh \
-    ${ros_prefix}/setup.* \
-    "
+DEPENDS_virtclass-native += "catkin-runtime"
 
 RDEPENDS_${PN}_class-native = ""
 RDEPENDS_${PN} = "cmake make binutils binutils-symlinks gcc gcc-symlinks g++ g++-symlinks \
-    python-catkin-pkg python-argparse python-misc python-multiprocessing \
-    python-shell python-subprocess python-xml python-pkgutil"
+    catkin-runtime"
+
+# The files in ${PYTHON_SITEPACKAGES_DIR} are installed by
+# the catkin-runtime package. Therefore, we remove them here
+# so that they are not installed.
+# Moreover: the ${ros_libdir}/python2.7 is empty. We need to
+# remove it, otherwise the QA error [installed-vs-shipped] will hit on us.
+do_install_append() {
+    rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}
+    rmdir ${D}${ros_libdir}/python2.7
+}
 
 BBCLASSEXTEND += "native"
diff --git a/recipes-ros/catkin/catkin/0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch b/recipes-ros/catkin/files/0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch
similarity index 100%
rename from recipes-ros/catkin/catkin/0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch
rename to recipes-ros/catkin/files/0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch
diff --git a/recipes-ros/ros-comm/roslaunch_1.10.12.bb b/recipes-ros/ros-comm/roslaunch_1.10.12.bb
index 8865cce8b3f5c1a9d4e7e852f23a323b28087d08..7e590354c2681aea32bf0316ac2adc2bbfa1fcdf 100644
--- a/recipes-ros/ros-comm/roslaunch_1.10.12.bb
+++ b/recipes-ros/ros-comm/roslaunch_1.10.12.bb
@@ -16,7 +16,6 @@ SRC_URI += "file://0001-increase-rosmaster-timeout.patch \
 ROS_PKG_SUBDIR = "tools"
 
 RDEPENDS_${PN} = "\
-    coreutils \
     python-textutils \
     python-logging \
     python-threading \
diff --git a/recipes-ros/ros/rosclean/0001-rosclean-Use-du-sk-1024-on-Linux-for-getting-disk-us.patch b/recipes-ros/ros/rosclean/0001-rosclean-Use-du-sk-1024-on-Linux-for-getting-disk-us.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8948b0e31fa2416c1d60176297ccbbf85a46261b
--- /dev/null
+++ b/recipes-ros/ros/rosclean/0001-rosclean-Use-du-sk-1024-on-Linux-for-getting-disk-us.patch
@@ -0,0 +1,35 @@
+From 300ac79a86f580040a1676004e1e8758cc7c6781 Mon Sep 17 00:00:00 2001
+From: Alexis Ballier <aballier@gentoo.org>
+Date: Thu, 22 Jan 2015 09:56:41 +0100
+Subject: [PATCH] rosclean: Use "du -sk * 1024" on Linux for getting disk usage
+ since "du -b" is not supported by busybox du, while "du -k" is supported by
+ both coreutils and busybox.
+
+Upstream-Status: Submitted [https://github.com/ros/ros/pull/76]
+---
+ tools/rosclean/src/rosclean/__init__.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tools/rosclean/src/rosclean/__init__.py b/tools/rosclean/src/rosclean/__init__.py
+index 5dafb05..6f051f1 100644
+--- a/tools/rosclean/src/rosclean/__init__.py
++++ b/tools/rosclean/src/rosclean/__init__.py
+@@ -121,13 +121,13 @@ def get_disk_usage(d):
+     """
+     Get disk usage in bytes for directory
+     :param d: directory path, ``str``
+-    :returns: disk usage in bytes (du -b) or (du -A) * 1024, ``int``
++    :returns: disk usage in bytes (du -k) * 1024 or (du -A) * 1024, ``int``
+     :raises: :exc:`CleanupException` If get_disk_usage() cannot be used on this platform
+     """
+     # only implemented on Linux and FreeBSD for now. Should work on OS X but need to verify first (du is not identical)
+     if platform.system() == 'Linux':
+         try:
+-            return int(subprocess.Popen(['du', '-sb', d], stdout=subprocess.PIPE).communicate()[0].split()[0])
++            return int(subprocess.Popen(['du', '-sk', d], stdout=subprocess.PIPE).communicate()[0].split()[0]) * 1024
+         except:
+             raise CleanupException("rosclean is not supported on this platform")
+     elif platform.system() == 'FreeBSD':
+-- 
+1.9.3
+
diff --git a/recipes-ros/ros/rosclean_1.10.11.bb b/recipes-ros/ros/rosclean_1.10.11.bb
index e83895561e457864749df041822de8487582af92..3184c17a7e921f8ce15efe9a089efcee0c8dddc9 100644
--- a/recipes-ros/ros/rosclean_1.10.11.bb
+++ b/recipes-ros/ros/rosclean_1.10.11.bb
@@ -6,3 +6,5 @@ LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc
 require ros.inc
 
 ROS_PKG_SUBDIR = "tools"
+
+SRC_URI += "file://0001-rosclean-Use-du-sk-1024-on-Linux-for-getting-disk-us.patch;striplevel=3"
diff --git a/recipes-ros/ros/roslib_1.10.11.bb b/recipes-ros/ros/roslib_1.10.11.bb
index af59dcd5542b5e05a5c30537e868f4e07788394e..5b45b7a51985f1b0b01b1cce625640784c74ef33 100644
--- a/recipes-ros/ros/roslib_1.10.11.bb
+++ b/recipes-ros/ros/roslib_1.10.11.bb
@@ -9,4 +9,4 @@ require ros.inc
 
 ROS_PKG_SUBDIR = "core"
 
-RDEPENDS_${PN} = "python-rospkg catkin"
+RDEPENDS_${PN} = "python-rospkg catkin-runtime"