diff --git a/Modules/Adapters/GdalAdapters/src/otbOGRDataSourceWrapper.cxx b/Modules/Adapters/GdalAdapters/src/otbOGRDataSourceWrapper.cxx
index 367e0d5389a17f3f34a42d8e0588d57519bc555d..b415ed076f8191211200d0f3552da1f3f230d4c1 100644
--- a/Modules/Adapters/GdalAdapters/src/otbOGRDataSourceWrapper.cxx
+++ b/Modules/Adapters/GdalAdapters/src/otbOGRDataSourceWrapper.cxx
@@ -235,23 +235,24 @@ void DeleteDataSource(std::string const& datasourceName)
     }
   else
     {
-      success = false;
+    itkGenericExceptionMacro(<< "Cannot open data source " << simpleFileName
+                             << ": " << CPLGetLastErrorMsg());
     }
   if(poDriver)
     {
     OGRErr ret = poDriver->Delete(simpleFileName.c_str());
-    success = ret == OGRERR_NONE;
+    if (ret != OGRERR_NONE)
+      {
+      itkGenericExceptionMacro(<< "Deletion of data source " << simpleFileName
+                             << " failed: " << CPLGetLastErrorMsg());
+      }
     }
   else 
     {
-      success = false;
+    itkGenericExceptionMacro(<< "Cannot get driver associated with data source " << simpleFileName
+                             << ": " << CPLGetLastErrorMsg());
     }
 
-  if (!success)
-    {
-    itkGenericExceptionMacro(<< "Deletion of data source " << simpleFileName
-                             << " failed: " << CPLGetLastErrorMsg());
-    }
 }
 
 otb::ogr::DataSource::Pointer