Index: code/branches/core3/src/util/ArgReader.cc
===================================================================
--- code/branches/core3/src/util/ArgReader.cc	(revision 1754)
+++ code/branches/core3/src/util/ArgReader.cc	(revision 1766)
@@ -34,4 +34,45 @@
 #include "ArgReader.h"
 #include "SubString.h"
+#include <ostream>
+#include <iostream>
+
+class FooBar
+{
+    //friend class ArgReader;
+public:
+    operator long long() const
+    {
+        return 0;
+    }
+    float float_;
+    static FooBar& createFooBar();
+private:
+    //FooBar();
+    //FooBar(const FooBar& instance);
+    //~FooBar();
+};
+
+inline std::ostream& operator<<(std::ostream& outstream, const FooBar& fb)
+{
+    return outstream << fb.float_;
+}
+inline std::istream& operator>>(std::istream& instream,  const FooBar& fb);
+//inline bool explicitConversion(const char** output, const FooBar input)
+//{
+//    return true;
+//}
+
+#include "Convert.h"
+
+template<>
+struct ConverterExplicit<const char*, FooBar>
+{
+    static bool convert(const char** output, const FooBar input)
+    {
+        return true;
+    }
+};
+
+#include "MultiType.h"
 
 ArgReader::ArgReader(int argc, char **argv)
@@ -40,4 +81,20 @@
   errorString_ = "";
   CmdLineArg arg;
+
+  int a = ImplicitConversion<FooBar, const char*>::exists;
+  int val1;
+  long long val2 = conversion_cast<long long>(val1);
+  //val2 = val1;
+  //convertValue(&val2, val1);
+  //explicitConversion(&FooBar(), val1);
+
+  //using namespace1::fooBar1;
+  //fooBar1();
+  //int val1;
+  //char val2;
+  //explicitConversion(&val1, val2);
+
+  std::istringstream asdf;
+  //asdf >> val2;
 
   int i = 1;
Index: code/branches/core3/src/util/Convert.h
===================================================================
--- code/branches/core3/src/util/Convert.h	(revision 1754)
+++ code/branches/core3/src/util/Convert.h	(revision 1766)
@@ -483,12 +483,11 @@
 ///////////////////////////////////////
 
-// delegate conversion from const char* via std::string
+// delegate conversion from const char* to std::string
 template <class ToType>
 struct ConverterExplicit<ToType, const char*>
 {
-    // convert from const char* via std::string
     static bool convert(ToType* output, const char* input)
     {
-        return conversion::ConverterSS<ToType, std::string, 0>::convert(output, input);
+        return ConverterExplicit<ToType, std::string>::convert(output, input);
     }
 };
@@ -499,5 +498,5 @@
     static bool convert(std::string* output, const char input)
     {
-        *output = std::string(input, 1);
+        *output = std::string(1, input);
         return true;
     }
@@ -507,5 +506,5 @@
     static bool convert(std::string* output, const unsigned char input)
     {
-        *output = std::string(input, 1);
+        *output = std::string(1, input);
         return true;
     }
Index: code/branches/core3/src/util/Math.cc
===================================================================
--- code/branches/core3/src/util/Math.cc	(revision 1754)
+++ code/branches/core3/src/util/Math.cc	(revision 1766)
@@ -27,7 +27,7 @@
  */
 
+#include "Math.h"
+
 #include <OgrePlane.h>
-
-#include "Math.h"
 #include "Convert.h"
 
Index: code/branches/core3/src/util/Math.h
===================================================================
--- code/branches/core3/src/util/Math.h	(revision 1754)
+++ code/branches/core3/src/util/Math.h	(revision 1766)
@@ -55,5 +55,5 @@
 }
 
-_UtilExport std::ostream& operator<<(std::ostream& out, const orxonox::Radian& radian);
+_UtilExport std::ostream& operator<<(std::ostream& out, const Ogre::Radian& radian);
 _UtilExport std::istream& operator>>(std::istream& in, orxonox::Radian& radian);
 _UtilExport std::ostream& operator<<(std::ostream& out, const orxonox::Degree& degree);
@@ -128,4 +128,16 @@
     return false;
 }
+
+//// ColourValue to std::string
+//inline bool explicitConversion(std::string* output, const orxonox::ColourValue& input)
+//{
+//    std::ostringstream ostream;
+//    if (ostream << input.r << "," << input.g << "," << input.b << "," << input.a)
+//    {
+//        (*output) = ostream.str();
+//        return true;
+//    }
+//    return false;
+//}
 
 // std::string to Vector2
Index: code/branches/core3/src/util/OutputHandler.h
===================================================================
--- code/branches/core3/src/util/OutputHandler.h	(revision 1754)
+++ code/branches/core3/src/util/OutputHandler.h	(revision 1766)
@@ -201,4 +201,21 @@
     }
 }
+//template<class T>
+//orxonox::OutputHandler& operator<<(orxonox::OutputHandler& out, const T& output)
+//{
+//    if (orxonox::OutputHandler::getSoftDebugLevel(orxonox::OutputHandler::LD_Console) >= out.getOutputLevel())
+//        std::cout << output;
+//
+//    if (orxonox::OutputHandler::getSoftDebugLevel(orxonox::OutputHandler::LD_Logfile) >= out.getOutputLevel())
+//    {
+//        out.getLogfile() << output;
+//        out.getLogfile().flush();
+//    }
+//
+//    if (orxonox::OutputHandler::getSoftDebugLevel(orxonox::OutputHandler::LD_Shell) >= out.getOutputLevel())
+//        (*out.getOutputBuffer()) << output;
+//
+//    return out;
+//}
 
 #endif /* _OutputHandler_H__ */
