diff --git a/Utilities/ITK/Code/Common/itkObjectFactoryBase.cxx b/Utilities/ITK/Code/Common/itkObjectFactoryBase.cxx
index 1d460f9f504ca280fde34164a9de040c1b6c1735..bed0a29f488486698f811274d3fbf0d6cacea7a8 100644
--- a/Utilities/ITK/Code/Common/itkObjectFactoryBase.cxx
+++ b/Utilities/ITK/Code/Common/itkObjectFactoryBase.cxx
@@ -301,7 +301,8 @@ NameIsSharedLibrary(const char* name)
 #endif
   
   std::string sname = name;
-  if ( sname.rfind(extension) == sname.size() - extension.size() )
+  size_t extensionpos = sname.rfind(extension);
+  if ( extensionpos != std::string::npos && extensionpos == sname.size() - extension.size() )
     {
     return true;
     }