diff --git a/tdeioslave/file/file.cc b/tdeioslave/file/file.cc index 45c482620..c445230e6 100644 --- a/tdeioslave/file/file.cc +++ b/tdeioslave/file/file.cc @@ -1644,11 +1644,16 @@ void FileProtocol::unmount( const TQString& _point ) if (!udi.isEmpty()) reply = d.call("unmount", udi); - + if (udi.isEmpty() || !reply.isValid()) - err = olderr; - else if (reply.isValid()) - reply.get(err); + err = olderr; + else if (reply.isValid()) { + TQStringVariantMap unmountResult; + reply.get(unmountResult); + if (!unmountResult.contains("result") || !unmountResult["result"].toBool()) { + err = unmountResult.contains("errStr") ? unmountResult["errStr"].toString() : i18n("Unknown unmount error."); + } + } } if ( err.isEmpty() )