diff --git a/Modules/Core/Metadata/include/otbGeomMetadataSupplier.h b/Modules/Core/Metadata/include/otbGeomMetadataSupplier.h
index f5ef799d01139763eea089797574f413afb4f814..32bfd7c085cc1f9645f6874dac369a9238a08903 100644
--- a/Modules/Core/Metadata/include/otbGeomMetadataSupplier.h
+++ b/Modules/Core/Metadata/include/otbGeomMetadataSupplier.h
@@ -48,6 +48,7 @@ public:
   GeomMetadataSupplier(const std::string &);
   GeomMetadataSupplier(const GeomMetadataSupplier &) = delete;
   GeomMetadataSupplier& operator=(const GeomMetadataSupplier&) = delete;
+  ~GeomMetadataSupplier() = default;
 
   /**
    * @brief Get the metadata value corresponding to a given path
diff --git a/Modules/Core/Metadata/src/otbGeomMetadataSupplier.cxx b/Modules/Core/Metadata/src/otbGeomMetadataSupplier.cxx
index c249152aa4d3973421dd13d644bf4104441e0a68..41a745ad7dbabf2aa2c1bbb79a2538ce89bb4045 100644
--- a/Modules/Core/Metadata/src/otbGeomMetadataSupplier.cxx
+++ b/Modules/Core/Metadata/src/otbGeomMetadataSupplier.cxx
@@ -52,7 +52,7 @@ std::string GeomMetadataSupplier::GetResourceFile(std::string) const
 
 int GeomMetadataSupplier::GetNbBands() const
 {
-  return 0;
+  return this->GetAsVector<std::string>("support_data.band_name_list").size();
 }
 
 const boost::any& GeomMetadataSupplier::FetchRPC(ImageMetadata & imd)