Index: code/branches/libraries/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/branches/libraries/src/orxonox/OrxonoxPrereqs.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/OrxonoxPrereqs.h	(revision 5686)
@@ -64,10 +64,5 @@
 namespace orxonox
 {
-    class RadarViewable;
-    class Radar;
-    class RadarListener;
-
-    class Teamcolourable;
-
+    // manager
     class CameraManager;
     class LevelManager;
@@ -75,4 +70,13 @@
     class PlayerManager;
 
+    // interfaces
+    class GametypeMessageListener;
+    class NotificationListener;
+    class PawnListener;
+    class RadarListener;
+    class RadarViewable;
+    class Rewardable;
+    class Teamcolourable;
+
     // objects
     class Level;
@@ -80,4 +84,5 @@
     class Tickable;
 
+    // worldentities
     class WorldEntity;
     class StaticEntity;
@@ -85,8 +90,6 @@
     class ControllableEntity;
     class MovableEntity;
-    class Sublevel;
-    class ForceField;
-    class Attacher;
-
+
+    // graphics
     class Model;
     class Billboard;
@@ -100,15 +103,27 @@
     class ParticleEmitter;
     class ParticleSpawner;
-
+    class Camera;
+
+    // mixed
     class PongCenterpoint;
     class PongBall;
     class PongBat;
 
-    class Camera;
-    class CameraPosition;
+    class EventListener;
+    class EventDispatcher;
+    class EventTarget;
+
     class SpawnPoint;
     class TeamSpawnPoint;
+
+    class Attacher;
+    class CameraPosition;
+    class Sublevel;
+    class ForceField;
+    class Radar;
+
     class Test;
 
+    // pawns
     class Spectator;
     class Pawn;
@@ -117,4 +132,14 @@
     class Destroyer;
 
+    // gametypes
+    class Gametype;
+    class Deathmatch;
+    class TeamDeathmatch;
+    class Asteroids;
+    class TeamBaseMatch;
+    class UnderAttack;
+    class Pong;
+
+    // pickups
     class BaseItem;
     class DroppedItem;
@@ -131,4 +156,5 @@
     class PassiveItem;
 
+    // items
     class Item;
     class Engine;
@@ -136,4 +162,5 @@
     class RotatingEngine;
 
+    // trigger
     class Trigger;
     class DistanceTrigger;
@@ -142,4 +169,5 @@
     class CheckPoint;
 
+    // weaponsystem
     class WeaponSystem;
     class WeaponSet;
@@ -149,26 +177,7 @@
     class WeaponMode;
     class DefaultWeaponmodeLink;
-    class MuzzleFlash;
-
-    class LaserFire;
-    class FusionFire;
-    class HsW01;
-    class LightningGun;
-    class EnergyDrink;
-
-    class ReplenishingMunition;
     class Munition;
-    class LaserMunition;
-    class FusionMunition;
-
-    class Projectile;
-    class BillboardProjectile;
-    class ParticleProjectile;
-    class LightningGunProjectile;
-
-    class EventListener;
-    class EventDispatcher;
-    class EventTarget;
-
+
+    // controller
     class Controller;
     class HumanController;
@@ -180,4 +189,5 @@
     class PongAI;
 
+    // infos
     class Info;
     class PlayerInfo;
@@ -187,12 +197,4 @@
     class GametypeInfo;
 
-    class Gametype;
-    class Deathmatch;
-    class TeamDeathmatch;
-    class Asteroids;
-    class TeamBaseMatch;
-    class UnderAttack;
-    class Pong;
-
     // collision
     class CollisionShape;
@@ -206,5 +208,4 @@
     class OrxonoxOverlay;
     class Notification;
-    class NotificationListener;
     class NotificationManager;
     class InGameConsole;
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/CMakeLists.txt
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/CMakeLists.txt	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/CMakeLists.txt	(revision 5686)
@@ -21,4 +21,6 @@
 ORXONOX_ADD_LIBRARY(weaponsystem
   MODULE
+  DEFINE_SYMBOL
+    "WEAPONSYSTEM_SHARED_BUILD"
   LINK_LIBRARIES
     orxonox
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/MuzzleFlash.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/MuzzleFlash.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/MuzzleFlash.h	(revision 5686)
@@ -30,5 +30,5 @@
 #define _MuzzleFlash_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "tools/Timer.h"
@@ -37,5 +37,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport MuzzleFlash : public Billboard
+    class _WeaponsystemExport MuzzleFlash : public Billboard
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/WeaponsystemPrereqs.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/WeaponsystemPrereqs.h	(revision 5686)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/WeaponsystemPrereqs.h	(revision 5686)
@@ -0,0 +1,84 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+  @file
+  @brief Contains all the necessary forward declarations for all classes and structs.
+*/
+
+#ifndef _WeaponsystemPrereqs_H__
+#define _WeaponsystemPrereqs_H__
+
+#include "OrxonoxConfig.h"
+
+#include "OrxonoxPrereqs.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(ORXONOX_STATIC_BUILD)
+#  ifdef WEAPONSYSTEM_SHARED_BUILD
+#    define _WeaponsystemExport __declspec(dllexport)
+#  else
+#    if defined( __MINGW32__ )
+#      define _WeaponsystemExport
+#    else
+#      define _WeaponsystemExport __declspec(dllimport)
+#    endif
+#  endif
+#elif defined ( ORXONOX_GCC_VISIBILITY )
+#  define _WeaponsystemExport  __attribute__ ((visibility("default")))
+#else
+#  define _WeaponsystemExport
+#endif
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+namespace orxonox
+{
+    class LaserFire;
+    class FusionFire;
+    class HsW01;
+    class LightningGun;
+    class EnergyDrink;
+
+    class Projectile;
+    class BillboardProjectile;
+    class ParticleProjectile;
+    class LightningGunProjectile;
+
+    class ReplenishingMunition;
+    class LaserMunition;
+    class FusionMunition;
+
+    class MuzzleFlash;
+}
+
+#endif /* _WeaponsystemPrereqs_H__ */
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/munitions/FusionMunition.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/munitions/FusionMunition.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/munitions/FusionMunition.h	(revision 5686)
@@ -30,10 +30,10 @@
 #define _FusionMunition_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "objects/weaponsystem/Munition.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport FusionMunition : public Munition
+    class _WeaponsystemExport FusionMunition : public Munition
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/munitions/LaserMunition.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/munitions/LaserMunition.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/munitions/LaserMunition.h	(revision 5686)
@@ -30,10 +30,10 @@
 #define _LaserMunition_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "ReplenishingMunition.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport LaserMunition : public ReplenishingMunition
+    class _WeaponsystemExport LaserMunition : public ReplenishingMunition
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h	(revision 5686)
@@ -30,5 +30,5 @@
 #define _ReplenishingMunition_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "tools/Timer.h"
@@ -37,5 +37,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport ReplenishingMunition : public Munition
+    class _WeaponsystemExport ReplenishingMunition : public Munition
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h	(revision 5686)
@@ -30,5 +30,5 @@
 #define _BillboardProjectile_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "util/Math.h"
@@ -38,5 +38,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport BillboardProjectile : public Projectile
+    class _WeaponsystemExport BillboardProjectile : public Projectile
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h	(revision 5686)
@@ -30,5 +30,5 @@
 #define _LightningGunProjectile_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include <string>
@@ -38,14 +38,14 @@
 namespace orxonox
 {
-    class _OrxonoxExport LightningGunProjectile : public BillboardProjectile
+    class _WeaponsystemExport LightningGunProjectile : public BillboardProjectile
     {
         public:
             LightningGunProjectile(BaseObject* creator);
             virtual ~LightningGunProjectile() {}
-            
+
             virtual void setMaterial(const std::string& material);
 
         protected:
-            void changeTexture();        
+            void changeTexture();
             unsigned int textureIndex_;
             unsigned int maxTextureIndex_;
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h	(revision 5686)
@@ -30,10 +30,10 @@
 #define _ParticleProjectile_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "BillboardProjectile.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport ParticleProjectile : public BillboardProjectile
+    class _WeaponsystemExport ParticleProjectile : public BillboardProjectile
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/Projectile.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/Projectile.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/projectiles/Projectile.h	(revision 5686)
@@ -30,5 +30,5 @@
 #define _Projectile_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "tools/Timer.h"
@@ -38,5 +38,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport Projectile : public MovableEntity, public PawnListener
+    class _WeaponsystemExport Projectile : public MovableEntity, public PawnListener
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h	(revision 5686)
@@ -30,5 +30,5 @@
 #define _EnergyDrink_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include <string>
@@ -38,5 +38,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport EnergyDrink : public WeaponMode
+    class _WeaponsystemExport EnergyDrink : public WeaponMode
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.h	(revision 5686)
@@ -30,10 +30,10 @@
 #define _FusionFire_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "objects/weaponsystem/WeaponMode.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport FusionFire : public WeaponMode
+    class _WeaponsystemExport FusionFire : public WeaponMode
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h	(revision 5686)
@@ -30,5 +30,5 @@
 #define _HsW01_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "tools/Timer.h"
@@ -37,5 +37,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport HsW01 : public WeaponMode
+    class _WeaponsystemExport HsW01 : public WeaponMode
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.h	(revision 5686)
@@ -30,10 +30,10 @@
 #define _LaserFire_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "objects/weaponsystem/WeaponMode.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport LaserFire : public WeaponMode
+    class _WeaponsystemExport LaserFire : public WeaponMode
     {
         public:
Index: code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.h
===================================================================
--- code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.h	(revision 5685)
+++ code/branches/libraries/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.h	(revision 5686)
@@ -30,10 +30,10 @@
 #define _LightningGun_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "objects/weaponsystem/WeaponMode.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport LightningGun : public WeaponMode
+    class _WeaponsystemExport LightningGun : public WeaponMode
     {
         public:
