diff --git a/Modules/Core/Metadata/src/otbPleiadesImageMetadataInterface.cxx b/Modules/Core/Metadata/src/otbPleiadesImageMetadataInterface.cxx
index 94f55e0a467af0e593d9d54ab0abd222a5bd283e..4eda669a8db48701c26ab857f28d2ab8ce2a7405 100644
--- a/Modules/Core/Metadata/src/otbPleiadesImageMetadataInterface.cxx
+++ b/Modules/Core/Metadata/src/otbPleiadesImageMetadataInterface.cxx
@@ -937,30 +937,48 @@ PleiadesImageMetadataInterface
     itkExceptionMacro(<< "Invalid Metadata, no Pleiades Image");
     }
 
+  std::vector<unsigned int> rgb(3);
+
+  rgb[0] = 0;
+  rgb[1] = 1;
+  rgb[2] = 2;
+
   ImageKeywordlistType imageKeywordlist;
+  if (! dict.HasKey(MetaDataKey::OSSIMKeywordlistKey))
+    {
+    return rgb;
+    }
+  itk::ExposeMetaData<ImageKeywordlistType>(dict, MetaDataKey::OSSIMKeywordlistKey, imageKeywordlist);
 
-  if (dict.HasKey(MetaDataKey::OSSIMKeywordlistKey))
+  if ( !imageKeywordlist.HasKey( "support_data.band_name_list" ) )
     {
-    itk::ExposeMetaData<ImageKeywordlistType>(dict, MetaDataKey::OSSIMKeywordlistKey, imageKeywordlist);
+    return rgb;
     }
 
-  std::vector<unsigned int> rgb(3);
+  const std::string & rgbOrder =
+    imageKeywordlist.GetMetadataByKey( "support_data.band_name_list" );
 
-  rgb[0] = 0;
-  rgb[1] = 1;
-  rgb[2] = 2;
+  std::vector<std::string> bandList;
+  boost::split(bandList, rgbOrder, boost::is_any_of(" "));
+
+  if (bandList[0] == "P")
+    {
+    rgb[1] = 0;
+    rgb[2] = 0;
+    return rgb;
+    }
 
-  if ( imageKeywordlist.HasKey( "support_data.band_name_list" ) )
-  {
-    const std::string & rgbOrder = 
-      imageKeywordlist.GetMetadataByKey( "support_data.band_name_list" );
-    auto place = rgbOrder.find("B");
+  if (bandList.size() >= 3)
+    {
     for (int i = 0 ; i < 3 ; i++ )
       {
-      rgb[i] = rgbOrder[place+1] -'0';
-      place = rgbOrder.find("B", place+1 );
+      std::string band = bandList[i];
+      if (band[0] == 'B')
+        {
+        rgb[i] = lexical_cast<unsigned int>(band.c_str() + 1);
+        }
       }
-  }
+    }
 
   return rgb;
 }