--- a/include/associative_base
+++ b/include/associative_base
@@ -318,7 +318,7 @@ protected:
 	typedef std::list<ValueType> listtype;
 
 	typename listtype::iterator base_iter;
-	typedef _associative_citer<ValueType, Compare, Allocator> _associative_citer;
+	typedef _associative_citer<ValueType, Compare, Allocator> __associative_citer;
 
 	
 public:
@@ -347,13 +347,13 @@ public:
 	bool operator==(const _associative_iter & m) const{
 		return m.base_iter == base_iter;
 	}
-	bool operator==(const _associative_citer & m) const{
+	bool operator==(const __associative_citer & m) const{
 		return m.base_iter == base_iter;
 	}
 	bool operator!=(const _associative_iter & m) const{
 		return m.base_iter != base_iter;
 	}
-	bool operator!=(const _associative_citer & m) const{
+	bool operator!=(const __associative_citer & m) const{
 		return m.base_iter != base_iter;
 	}
 	_associative_iter & operator++(){
@@ -378,8 +378,8 @@ public:
 		--base_iter;
 		return temp;
 	}
-	operator _associative_citer() const{
-		return _associative_citer(base_iter);
+	operator __associative_citer() const{
+		return __associative_citer(base_iter);
 	}
 	typename listtype::iterator base_iterator(){
 		return base_iter;
--- a/include/string
+++ b/include/string
@@ -1017,11 +1017,11 @@ template<class charT, class traits, clas
 
 template <> _UCXXEXPORT bool operator==(const string & lhs, const string & rhs);
 template <> _UCXXEXPORT bool operator==(const char * lhs, const string & rhs);
-template <> _UCXXEXPORT bool operator==(const string & rhs, const char * rhs);
+template <> _UCXXEXPORT bool operator==(const string & lhs, const char * rhs);
 
 template <> _UCXXEXPORT bool operator!=(const string & lhs, const string & rhs);
 template <> _UCXXEXPORT bool operator!=(const char * lhs, const string & rhs);
-template <> _UCXXEXPORT bool operator!=(const string & rhs, const char * rhs);
+template <> _UCXXEXPORT bool operator!=(const string & lhs, const char * rhs);
 
 template <> _UCXXEXPORT string operator+(const string & lhs, const char* rhs);
 template <> _UCXXEXPORT string operator+(const char* lhs, const string & rhs);
--- a/src/string.cpp
+++ b/src/string.cpp
@@ -76,11 +76,11 @@ namespace std{
 
 	template _UCXXEXPORT bool operator==(const string & lhs, const string & rhs);
 	template _UCXXEXPORT bool operator==(const char * lhs, const string & rhs);
-	template _UCXXEXPORT bool operator==(const string & rhs, const char * rhs);
+	template _UCXXEXPORT bool operator==(const string & lhs, const char * rhs);
 
 	template _UCXXEXPORT bool operator!=(const string & lhs, const string & rhs);
 	template _UCXXEXPORT bool operator!=(const char * lhs, const string & rhs);
-	template _UCXXEXPORT bool operator!=(const string & rhs, const char * rhs);
+	template _UCXXEXPORT bool operator!=(const string & lhs, const char * rhs);
 
 	template _UCXXEXPORT string operator+(const string & lhs, const char* rhs);
 	template _UCXXEXPORT string operator+(const char* lhs, const string & rhs);