diff --git a/classes/catkin.bbclass b/classes/catkin.bbclass
index f2e8a026e78002f02581f0e3ad1f2198cd6c335e..5286c4e2b2a8b1b18c4985e40ef580d36b826406 100644
--- a/classes/catkin.bbclass
+++ b/classes/catkin.bbclass
@@ -2,7 +2,7 @@
 # Copyright (c) 2013 Stefan Herbrechtsmeier, Bielefeld University
 # 
 
-inherit cmake distutils-base ros
+inherit cmake distutils-base ros faulty-solibs
 
 DEPENDS_prepend = "${@['catkin-native ', ''][d.getVar('BPN', True) == 'catkin']}"
 
diff --git a/classes/faulty-solibs.bbclass b/classes/faulty-solibs.bbclass
new file mode 100644
index 0000000000000000000000000000000000000000..5ce0ad3f1a99c35b0405cf27ab66002d7d1ad964
--- /dev/null
+++ b/classes/faulty-solibs.bbclass
@@ -0,0 +1,5 @@
+# Ideally, the software packages upstream should be fixed to provide dynamic
+# libraries with version number and symlinks without version number to them.
+# This class sets up bitbake to handle improper set up software packages. 
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${libdir}/lib*${SOLIBSDEV}"
diff --git a/classes/ros.bbclass b/classes/ros.bbclass
index 3fb19ca7893ee1a45b2a05470646a777b73f4a70..4e181baf82e135a59f0a1272f29ecebc2e286294 100644
--- a/classes/ros.bbclass
+++ b/classes/ros.bbclass
@@ -7,9 +7,6 @@ ROS_BPN = "${@d.getVar('BPN', True).replace('-', '_')}"
 ROS_SPN ?= "${ROS_BPN}"
 ROS_SP = "${ROS_SPN}-${PV}"
 
-FILES_SOLIBSDEV = ""
-FILES_${PN} += "${libdir}/lib*${SOLIBSDEV}"
-
 FILES_${PN} += "\
     ${prefix}/etc \
     ${datadir}/ros/config/${ROS_BPN}.config \
diff --git a/recipes-ros/console-bridge/console-bridge_0.2.4.bb b/recipes-ros/console-bridge/console-bridge_0.2.4.bb
index 0053d4ba2a851a6aa96a8c60d63717bab0bf53c5..b6080e1caa158250625b89172fa0931af7e5761d 100644
--- a/recipes-ros/console-bridge/console-bridge_0.2.4.bb
+++ b/recipes-ros/console-bridge/console-bridge_0.2.4.bb
@@ -18,4 +18,4 @@ SRC_URI[sha256sum] = "d4bdd0b6bce0c6fa9ff18b8926d4953161451bc49dd11497211eb1a62c
 
 S = "${WORKDIR}/${ROS_SP}"
 
-inherit cmake ros
+inherit cmake ros faulty-solibs
diff --git a/recipes-ros/octomap/octomap.inc b/recipes-ros/octomap/octomap.inc
index fe9fdc03d45581aa6fc2fc9621f55433be134c4d..7141e12c5684fff682838fcf22e07284dda6c3fd 100644
--- a/recipes-ros/octomap/octomap.inc
+++ b/recipes-ros/octomap/octomap.inc
@@ -8,6 +8,6 @@ EXTRA_OECMAKE += "\
   -DCMAKE_SKIP_RPATH=ON \
 "
 
-inherit cmake ros
+inherit cmake ros faulty-solibs
 
 ROS_SPN = "octomap"
diff --git a/recipes-ros/urdfdom-headers/urdfdom-headers_0.2.3.bb b/recipes-ros/urdfdom-headers/urdfdom-headers_0.2.3.bb
index 1d84670ce23a5f0934615f89d2943c02b30a0502..54c99a2a64cb0d62b6aeddd45681f053c3478f46 100644
--- a/recipes-ros/urdfdom-headers/urdfdom-headers_0.2.3.bb
+++ b/recipes-ros/urdfdom-headers/urdfdom-headers_0.2.3.bb
@@ -10,4 +10,4 @@ SRC_URI[sha256sum] = "6b1f27b002c6d897b43ed57988133f40aac093a2a6e84d9bf08ed36a13
 
 S = "${WORKDIR}/${ROS_SP}"
 
-inherit cmake ros
+inherit cmake ros faulty-solibs
diff --git a/recipes-ros/urdfdom/urdfdom_0.2.10.bb b/recipes-ros/urdfdom/urdfdom_0.2.10.bb
index 5cd759043395f9f9ee284adda9748ebf0d8b63c4..37a5cd6c27215b3b9be3ac059eb529d3f44540eb 100644
--- a/recipes-ros/urdfdom/urdfdom_0.2.10.bb
+++ b/recipes-ros/urdfdom/urdfdom_0.2.10.bb
@@ -11,4 +11,4 @@ require urdfdom.inc
 
 S = "${WORKDIR}/${ROS_SP}"
 
-inherit ros cmake
+inherit cmake ros faulty-solibs