diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.cpp b/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.cpp
index a83c0a639182823060855531212053abed483415..97bd39df142c059d7e13427a29a540e4834a65e3 100644
--- a/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.cpp
+++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.cpp
@@ -7,6 +7,7 @@
 
 #include <VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h>
 #include <VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.h>
+#include <VirtualRobot/Visualization/CoinVisualization/CoinVisualization.h>
 
 #include <boost/foreach.hpp>
 
@@ -201,6 +202,39 @@ void BulletCoinQtViewer::viewAll()
 	//viewer->viewAll();
 }
 
+void BulletCoinQtViewer::addVisualization(RobotPtr robot, VirtualRobot::SceneObject::VisualizationType visuType)
+{
+	boost::recursive_mutex::scoped_lock scoped_lock(engineMutex);
+	VR_ASSERT(so);
+	removeVisualization(robot);
+
+    boost::shared_ptr<VirtualRobot::CoinVisualization> visualization = robot->getVisualization<CoinVisualization>(visuType);
+	SoNode* n = visualization->getCoinVisualization();
+
+	if (n)
+	{
+		sceneGraph->addChild(n);
+		sceneGraph->addSelectionCallback( selectionCB, this );
+		sceneGraph->addDeselectionCallback( deselectionCB, this );
+		addedSpriteRobotVisualizations[robot] = n;
+	}
+}
+
+void BulletCoinQtViewer::addVisualization(SceneObjectPtr so, VirtualRobot::SceneObject::VisualizationType visuType)
+{
+	boost::recursive_mutex::scoped_lock scoped_lock(engineMutex);
+	VR_ASSERT(so);
+	removeVisualization(so);
+	SoNode * n = CoinVisualizationFactory::getCoinVisualization(so, visuType);
+	if (n)
+	{
+		sceneGraph->addChild(n);
+		sceneGraph->addSelectionCallback( selectionCB, this );
+		sceneGraph->addDeselectionCallback( deselectionCB, this );
+		addedSpriteVisualizations[so] = n;
+	}
+}
+
 void BulletCoinQtViewer::addVisualization(DynamicsObjectPtr o, VirtualRobot::SceneObject::VisualizationType visuType)
 {
 	boost::recursive_mutex::scoped_lock scoped_lock(engineMutex);
@@ -255,6 +289,28 @@ void BulletCoinQtViewer::addVisualization(DynamicsRobotPtr r, VirtualRobot::Scen
 	}*/
 }
 
+void BulletCoinQtViewer::removeVisualization( RobotPtr o )
+{
+	boost::recursive_mutex::scoped_lock scoped_lock(engineMutex);
+	VR_ASSERT(o);
+	if (addedSpriteRobotVisualizations.find(o) != addedSpriteRobotVisualizations.end())
+	{
+		sceneGraph->removeChild(addedSpriteRobotVisualizations[o]);
+		addedSpriteRobotVisualizations.erase(o);
+	}
+}
+
+void BulletCoinQtViewer::removeVisualization( SceneObjectPtr o )
+{
+	boost::recursive_mutex::scoped_lock scoped_lock(engineMutex);
+	VR_ASSERT(o);
+	if (addedSpriteVisualizations.find(o) != addedSpriteVisualizations.end())
+	{
+		sceneGraph->removeChild(addedSpriteVisualizations[o]);
+		addedSpriteVisualizations.erase(o);
+	}
+}
+
 void BulletCoinQtViewer::removeVisualization( DynamicsObjectPtr o )
 {
 	boost::recursive_mutex::scoped_lock scoped_lock(engineMutex);
diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.h b/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.h
index 26c239726f76fd83da4ebfe8819b0c8920ae3fe3..8429f886a15d9a71360808459af797b13e19ec18 100644
--- a/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.h
+++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.h
@@ -63,12 +63,16 @@ public:
 	/*!
 		Visualize dynamics object.
 	*/
+	void addVisualization(VirtualRobot::RobotPtr o, VirtualRobot::SceneObject::VisualizationType visuType = VirtualRobot::SceneObject::Full);
+	void addVisualization(VirtualRobot::SceneObjectPtr o, VirtualRobot::SceneObject::VisualizationType visuType = VirtualRobot::SceneObject::Full);
 	void addVisualization(DynamicsObjectPtr o, VirtualRobot::SceneObject::VisualizationType visuType = VirtualRobot::SceneObject::Full);
 	void addVisualization(DynamicsRobotPtr r, VirtualRobot::SceneObject::VisualizationType visuType = VirtualRobot::SceneObject::Full);
 
 	/*!
 		Remove visualization of dynamics object.
 	*/
+	void removeVisualization(VirtualRobot::RobotPtr o);
+	void removeVisualization(VirtualRobot::SceneObjectPtr o);
 	void removeVisualization(DynamicsObjectPtr o);
 	void removeVisualization(DynamicsRobotPtr r);
 
@@ -159,6 +163,8 @@ protected:
 	BulletEnginePtr bulletEngine;
 	btClock m_clock;
 
+	std::map<VirtualRobot::RobotPtr,SoNode*> addedSpriteRobotVisualizations;
+	std::map<VirtualRobot::SceneObjectPtr,SoNode*> addedSpriteVisualizations;
 	std::map<DynamicsObjectPtr,SoNode*> addedVisualizations;
 	std::map<DynamicsRobotPtr,SoNode*> addedRobotVisualizations;