Index: trunk/nv/core/resource.hh
===================================================================
--- trunk/nv/core/resource.hh	(revision 477)
+++ trunk/nv/core/resource.hh	(revision 478)
@@ -85,4 +85,6 @@
 		friend constexpr bool operator==( const resource< U >&, const resource< U >& );
 		template < typename U >
+		friend constexpr bool operator!=( const resource< U >&, const resource< U >& );
+		template < typename U >
 		friend constexpr bool operator<( const resource< U >&, const resource< U >& );
 		template < typename U >
@@ -96,5 +98,11 @@
 	constexpr bool operator== ( const resource< T >& lhs, const resource< T >& rhs )
 	{
-		return lhs.m_id == lhs.m_id && rhs.m_handler == rhs.m_handler;
+		return lhs.m_id == rhs.m_id && lhs.m_handler == rhs.m_handler;
+	}
+
+	template < typename T >
+	constexpr bool operator!= ( const resource< T >& lhs, const resource< T >& rhs )
+	{
+		return lhs.m_id != rhs.m_id || lhs.m_handler != rhs.m_handler;
 	}
 
@@ -102,5 +110,5 @@
 	constexpr bool operator< ( const resource< T >& lhs, const resource< T >& rhs )
 	{
-		return lhs.m_id.value() < lhs.m_id.value();
+		return lhs.m_id.value() < rhs.m_id.value();
 	}
 
@@ -108,5 +116,5 @@
 	constexpr bool operator> ( const resource< T >& lhs, const resource< T >& rhs )
 	{
-		return lhs.m_id.value() > lhs.m_id.value();
+		return lhs.m_id.value() > rhs.m_id.value();
 	}
 
