diff --git a/ReleaseNotes.md b/ReleaseNotes.md
index f7fac8bb0c47bc6ddb2b6b0e03d7aba9fd538112..0ffc27094e360b62883bb8a2cdabc367871b7156 100644
--- a/ReleaseNotes.md
+++ b/ReleaseNotes.md
@@ -5,6 +5,7 @@
 ### Features
 - cta/CTA#1238 - All drive down reasons set by cta-taped should start with [cta-taped]
 - cta/CTA#1254 - Remove tape label option from cta-admin
+- cta/CTA#1253 - add disk instance to cta-admin vo ls output and fix handling of case sensitive names in cta-admin vo add
 ### Bug fixes
 ### Building and Packaging
 ### Catalogue Schema
diff --git a/catalogue/CatalogueTest.cpp b/catalogue/CatalogueTest.cpp
index dfcacc7f3f1e06645044e28023f37c3266d8789a..482c8803436cc8e3a8db8a4ccbfb8d727c059fc1 100644
--- a/catalogue/CatalogueTest.cpp
+++ b/catalogue/CatalogueTest.cpp
@@ -16694,6 +16694,17 @@ TEST_P(cta_catalogue_CatalogueTest, createVirtualOrganizationAlreadyExists) {
   ASSERT_THROW(m_catalogue->createVirtualOrganization(m_admin,vo),cta::exception::UserError);
 }
 
+TEST_P(cta_catalogue_CatalogueTest, createVirtualOrganizationAlreadyExistsCaseSensitive) {
+  using namespace cta;
+
+  common::dataStructures::VirtualOrganization vo = getVo();
+
+  m_catalogue->createDiskInstance(m_admin, m_diskInstance.name, m_diskInstance.comment);
+  ASSERT_NO_THROW(m_catalogue->createVirtualOrganization(m_admin,vo));
+  utils::toUpper(vo.name);
+  ASSERT_THROW(m_catalogue->createVirtualOrganization(m_admin,vo),cta::exception::UserError);
+}
+
 TEST_P(cta_catalogue_CatalogueTest, createVirtualOrganizationEmptyComment) {
   using namespace cta;
 
diff --git a/catalogue/RdbmsCatalogue.cpp b/catalogue/RdbmsCatalogue.cpp
index d14cfd301c7716b944a62b858cf66b8c9e9597d5..ae4a5f8514035eab7aa2e2534f64873859cd4802 100644
--- a/catalogue/RdbmsCatalogue.cpp
+++ b/catalogue/RdbmsCatalogue.cpp
@@ -181,7 +181,7 @@ bool RdbmsCatalogue::virtualOrganizationExists(rdbms::Conn &conn, const std::str
       "FROM "
         "VIRTUAL_ORGANIZATION "
       "WHERE "
-        "VIRTUAL_ORGANIZATION_NAME = :VIRTUAL_ORGANIZATION_NAME";
+        "UPPER(VIRTUAL_ORGANIZATION_NAME) = UPPER(:VIRTUAL_ORGANIZATION_NAME)";
     auto stmt = conn.createStmt(sql);
     stmt.bindString(":VIRTUAL_ORGANIZATION_NAME", voName);
     auto rset = stmt.executeQuery();
diff --git a/cmdline/CtaAdminTextFormatter.cpp b/cmdline/CtaAdminTextFormatter.cpp
index e36c3c5b9f74acce64cd9933277693440eae9720..eece9e530366e833f8819f6ebbebf785009953ae 100644
--- a/cmdline/CtaAdminTextFormatter.cpp
+++ b/cmdline/CtaAdminTextFormatter.cpp
@@ -1104,6 +1104,7 @@ void TextFormatter::printVirtualOrganizationLsHeader(){
     "read max drives",
     "write max drives",
     "max file size",
+    "disk instance",
     "c.user",
     "c.host",
     "c.time",
@@ -1120,6 +1121,7 @@ void TextFormatter::print(const VirtualOrganizationLsItem& vols_item){
     vols_item.read_max_drives(),
     vols_item.write_max_drives(),
     dataSizeToStr(vols_item.max_file_size()),
+    vols_item.diskinstance(),
     vols_item.creation_log().username(),
     vols_item.creation_log().host(),
     timeToStr(vols_item.creation_log().time()),