Hi Itcmelo,
thanks for the response. But I think I didn't make clear, what the problem is.
So I try once more (I cannot provide the complete and "real" code because it's far too much)
Code:
//This is a template
template class A
{
public:
    virtual bool IsValid () const
    {
        return IsValid (mMemberValue);
    }
    /*...*/
protected:
    virtual bool IsValid (int value)const
    {
       /*....*/
    }
private:
    int mMemberValue;
};

//This is a class derived from template A
class B : public A
{
    public:
        virtual bool IsValid() const; //<<<<<- The error occurs here!
    /*....*/
};
In the above case the compiler complains about B::IsValid() hiding A::IsValid(int).
If A was a class, this works. I did similar things a million times before.
So I guess this has something to do with the template...

chabba