Index: /code/branches/doc/src/libraries/core/command/TclThreadManager.cc
===================================================================
--- /code/branches/doc/src/libraries/core/command/TclThreadManager.cc	(revision 7364)
+++ /code/branches/doc/src/libraries/core/command/TclThreadManager.cc	(revision 7365)
@@ -256,5 +256,5 @@
     void TclThreadManager::initialize(TclInterpreterBundle* bundle)
     {
-        const std::string& id_string = getConvertedValue<unsigned int, std::string>(bundle->id_);
+        const std::string& id_string = multi_cast<std::string>(bundle->id_);
 
         // Initialize the new interpreter
@@ -408,8 +408,8 @@
             {
                 // This query would lead to a deadlock - return with an error
-                TclThreadManager::error("Error: Circular query (" + this->dumpList(source_bundle->queriers_.getList()) + ' ' + getConvertedValue<unsigned int, std::string>(source_bundle->id_) \
-                            + " -> " + getConvertedValue<unsigned int, std::string>(target_bundle->id_) \
-                            + "), couldn't query Tcl-interpreter with ID " + getConvertedValue<unsigned int, std::string>(target_bundle->id_) \
-                            + " from other interpreter with ID " + getConvertedValue<unsigned int, std::string>(source_bundle->id_) + '.');
+                TclThreadManager::error("Error: Circular query (" + this->dumpList(source_bundle->queriers_.getList()) + ' ' + multi_cast<std::string>(source_bundle->id_) \
+                            + " -> " + multi_cast<std::string>(target_bundle->id_) \
+                            + "), couldn't query Tcl-interpreter with ID " + multi_cast<std::string>(target_bundle->id_) \
+                            + " from other interpreter with ID " + multi_cast<std::string>(source_bundle->id_) + '.');
             }
             else
@@ -477,5 +477,5 @@
                     // This happens if the main thread tries to query a busy interpreter
                     // To avoid a lock of the main thread, we simply don't proceed with the query in this case
-                    TclThreadManager::error("Error: Couldn't query Tcl-interpreter with ID " + getConvertedValue<unsigned int, std::string>(target_bundle->id_) + ", interpreter is busy right now.");
+                    TclThreadManager::error("Error: Couldn't query Tcl-interpreter with ID " + multi_cast<std::string>(target_bundle->id_) + ", interpreter is busy right now.");
                 }
             }
@@ -523,5 +523,5 @@
         else
         {
-            TclThreadManager::error("Error: No Tcl-interpreter with ID " + getConvertedValue<unsigned int, std::string>(id) + " existing.");
+            TclThreadManager::error("Error: No Tcl-interpreter with ID " + multi_cast<std::string>(id) + " existing.");
             return 0;
         }
@@ -539,5 +539,5 @@
                 output += ' ';
 
-            output += getConvertedValue<unsigned int, std::string>(*it);
+            output += multi_cast<std::string>(*it);
         }
         return output;
@@ -591,5 +591,5 @@
         if (cc != TCL_OK)
         {
-            TclThreadManager::error("Tcl error (" + action + ", ID " + getConvertedValue<unsigned int, std::string>(bundle->id_) + "): " + static_cast<std::string>(result));
+            TclThreadManager::error("Tcl error (" + action + ", ID " + multi_cast<std::string>(bundle->id_) + "): " + static_cast<std::string>(result));
             return "";
         }
Index: /code/branches/doc/src/libraries/util/Convert.h
===================================================================
--- /code/branches/doc/src/libraries/util/Convert.h	(revision 7364)
+++ /code/branches/doc/src/libraries/util/Convert.h	(revision 7365)
@@ -161,32 +161,4 @@
         }
     };
-
-    ////////////
-    // upcast //
-    ////////////
-    namespace detail
-    {
-        // perform a static cast if ToType is a base of FromType
-        template<class ToType, class FromType>
-        FORCEINLINE ToType upcast(FromType input, Loki::Int2Type<true>)
-        {
-            return static_cast<ToType>(input);
-        }
-
-        // return zero if ToType is not a base of FromType
-        template<class ToType, class FromType>
-        FORCEINLINE ToType upcast(FromType input, Loki::Int2Type<false>)
-        {
-            return 0;
-        }
-    }
-
-    // performs an upcast if ToType is a base of FromType, returns zero otherwise
-    template <class ToType, class FromType>
-    FORCEINLINE ToType upcast(FromType input)
-    {
-        enum { probe = ImplicitConversion<FromType, ToType>::exists };
-        return detail::upcast<ToType, FromType>(input, Loki::Int2Type<probe>());
-    }
 }
 
@@ -381,12 +353,4 @@
     }
 
-    template<class FromType, class ToType>
-    FORCEINLINE ToType getConvertedValue(const FromType& input)
-    {
-        ToType output;
-        convertValue(&output, input);
-        return output;
-    }
-
     /// Directly returns the converted value, but uses the fallback on failure. @see convertValue
     template<class FromType, class ToType>
@@ -443,5 +407,4 @@
     /// Conversion would exhibit ambiguous << or >> operators when using iostream
     template <>
-    template <>
     struct ConverterExplicit<unsigned char, std::string>
     {
@@ -453,5 +416,4 @@
     };
     /// Conversion would exhibit ambiguous << or >> operators when using iostream
-    template <>
     template <>
     struct ConverterExplicit<std::string, char>
