--- a/src/plugins/exiv2_extractor.cc
+++ b/src/plugins/exiv2_extractor.cc
@@ -48,6 +48,14 @@ private:
  */
 struct EXTRACTOR_ExtractContext *ec;
 
+/**
+ * Dummy string "(unknown)" to represent the unknown source.
+ *
+ * It is needed as class variable as in EXIV2 0.28 and greater the path() method
+ * returns a const reference.
+ */
+std::string io_path;
+
 public:
 
 /**
@@ -58,6 +66,7 @@ public:
 ExtractorIO (struct EXTRACTOR_ExtractContext *s_ec)
 {
   ec = s_ec;
+  io_path = "(unknown)";
 }
 
 
@@ -589,9 +598,9 @@ ExtractorIO::eof () const
 
 
 /**
- * Not supported.
+ * Return the string with the path.
  *
- * @throws error
+ * @return the string "(unknown)"
  */
 #if EXIV2_TEST_VERSION (0,28,0)
 const std::string&
@@ -601,13 +610,7 @@ std::string
 ExtractorIO::path () const
 #endif
 {
-#if EXIV2_TEST_VERSION (0,28,0)
-  throw Exiv2::Error (Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed);
-#elif EXIV2_TEST_VERSION (0,27,0)
-  throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
-#else
-  throw Exiv2::BasicError<char> (42 /* error code */);
-#endif
+  return io_path;
 }
 
 
