Index: code/branches/presentation2/src/libraries/network/synchronisable/CMakeLists.txt
===================================================================
--- code/branches/presentation2/src/libraries/network/synchronisable/CMakeLists.txt	(revision 6122)
+++ code/branches/presentation2/src/libraries/network/synchronisable/CMakeLists.txt	(revision 6123)
@@ -10,4 +10,5 @@
   NetworkCallbackManager.h
   Synchronisable.h
+  SynchronisablePointer.h
   SynchronisableVariable.h
 )
Index: code/branches/presentation2/src/libraries/network/synchronisable/Synchronisable.h
===================================================================
--- code/branches/presentation2/src/libraries/network/synchronisable/Synchronisable.h	(revision 6122)
+++ code/branches/presentation2/src/libraries/network/synchronisable/Synchronisable.h	(revision 6123)
@@ -138,5 +138,4 @@
     Synchronisable(BaseObject* creator);
     template <class T> void registerVariable(T& variable, uint8_t mode=0x1, NetworkCallbackBase *cb=0, bool bidirectional=false);
-    //template <class T> void unregisterVariable(T& var);
     void setPriority(unsigned int freq){ objectFrequency_ = freq; }
 
@@ -187,32 +186,14 @@
     if (bidirectional)
     {
-      syncList.push_back(new SynchronisableVariableBidirectional<const T>(variable, mode, cb));
+      syncList.push_back(new SynchronisableVariableBidirectional<T>(variable, mode, cb));
       this->dataSize_ += syncList.back()->getSize(state_);
     }
     else
     {
-      syncList.push_back(new SynchronisableVariable<const T>(variable, mode, cb));
+      syncList.push_back(new SynchronisableVariable<T>(variable, mode, cb));
       if ( this->state_ == mode )
         this->dataSize_ += syncList.back()->getSize(state_);
     }
   }
-  
-
-
-//   template <class T> void Synchronisable::unregisterVariable(T& var){
-//     std::vector<SynchronisableVariableBase*>::iterator it = syncList.begin();
-//     while(it!=syncList.end()){
-//       if( ((*it)->getReference()) == &var ){
-//         delete (*it);
-//         syncList.erase(it);
-//         return;
-//       }
-//       else
-//         it++;
-//     }
-//     bool unregistered_nonexistent_variable = false;
-//     assert(unregistered_nonexistent_variable); //if we reach this point something went wrong:
-//     // the variable has not been registered before
-//   }
 
   
Index: code/branches/presentation2/src/libraries/network/synchronisable/SynchronisableVariable.h
===================================================================
--- code/branches/presentation2/src/libraries/network/synchronisable/SynchronisableVariable.h	(revision 6122)
+++ code/branches/presentation2/src/libraries/network/synchronisable/SynchronisableVariable.h	(revision 6123)
@@ -35,5 +35,5 @@
 #include <cassert>
 #include <cstring>
-#include "util/Serialise.h"
+#include "Serialise.h"
 #include "util/TypeTraits.h"
 #include "core/GameMode.h"
@@ -143,6 +143,5 @@
     if ( this->callback_ != 0 )
     {
-      if( forceCallback || !checkEquality( this->variable_, mem ) )
-        callback = true;
+      callback = forceCallback || !checkEquality( this->variable_, mem );
     }
   // write the data
Index: code/branches/presentation2/src/libraries/util/Serialise.h
===================================================================
--- code/branches/presentation2/src/libraries/util/Serialise.h	(revision 6122)
+++ code/branches/presentation2/src/libraries/util/Serialise.h	(revision 6123)
@@ -40,14 +40,12 @@
 namespace orxonox{
     
-// general template declaration
-    
     /** @brief returns the size of the variable in a datastream */
-    template <class T> inline uint32_t returnSize( const T& );
+    template <class T> inline uint32_t returnSize( const T& variable );
     /** @brief loads the value of a variable out of the bytestream and increases the mem pointer */
-    template <class T> inline void loadAndIncrease( const T&, uint8_t*& );
+    template <class T> inline void loadAndIncrease( const T& variable, uint8_t*& mem );
     /** @brief saves the value of a variable into the bytestream and increases the mem pointer */
-    template <class T> inline void saveAndIncrease( const T&, uint8_t*& );
+    template <class T> inline void saveAndIncrease( const T& variable, uint8_t*& mem );
     /** @brief checks whether the variable of type T is the same as in the bytestream */
-    template <class T> inline  bool checkEquality( const T&, uint8_t* );
+    template <class T> inline bool checkEquality( const T& variable, uint8_t* mem );
 
 // =================== Template specialisation stuff =============
@@ -471,6 +469,4 @@
         return variable==Degree(*r);
     }
-    
-    
 }
 
