diff --git a/Modules/Adapters/OSSIMAdapters/src/otbMapProjectionAdapter.cxx b/Modules/Adapters/OSSIMAdapters/src/otbMapProjectionAdapter.cxx
index cf7fe71ce79c926b768a23522beef1f84edf009f..54785258d096842fabd6e2692fcf0033fd3edb6f 100644
--- a/Modules/Adapters/OSSIMAdapters/src/otbMapProjectionAdapter.cxx
+++ b/Modules/Adapters/OSSIMAdapters/src/otbMapProjectionAdapter.cxx
@@ -195,9 +195,16 @@ std::string MapProjectionAdapter::GetParameter(const std::string& key) const
   if (projectionName.compare("ossimTransMercatorProjection") == 0)
     {
     const ossimTransMercatorProjection* tmProjection = dynamic_cast<const ossimTransMercatorProjection*>(this->GetMapProjection());
-    if (key.compare("ScaleFactor") == 0)
+    if (!tmProjection)
       {
-      return Utils::ConvertToString(tmProjection->getScaleFactor());
+      itkExceptionMacro("Error casting object to ossimTransMercatorProjection.");
+      }
+    else
+      {
+      if (key.compare("ScaleFactor") == 0)
+        {
+        return Utils::ConvertToString(tmProjection->getScaleFactor());
+        }
       }
     }