diff --git a/src/archive/plugins/ZzipArchivePlugin.cxx b/src/archive/plugins/ZzipArchivePlugin.cxx
index 4a32f3b229ef702234ab294b115d8c9016e81973..c1e48e557c2d7469ba058090e0bf79f7372516bd 100644
--- a/src/archive/plugins/ZzipArchivePlugin.cxx
+++ b/src/archive/plugins/ZzipArchivePlugin.cxx
@@ -32,6 +32,8 @@
 
 #include <zzip/zzip.h>
 
+#include <utility>
+
 struct ZzipDir {
 	ZZIP_DIR *const dir;
 
@@ -91,11 +93,11 @@ class ZzipInputStream final : public InputStream {
 	ZZIP_FILE *const file;
 
 public:
-	ZzipInputStream(const std::shared_ptr<ZzipDir>& _dir, const char *_uri,
+	ZzipInputStream(std::shared_ptr<ZzipDir> _dir, const char *_uri,
 			Mutex &_mutex,
 			ZZIP_FILE *_file)
 		:InputStream(_uri, _mutex),
-		 dir(_dir), file(_file) {
+		 dir(std::move(_dir)), file(_file) {
 		//we are seekable (but its not recommendent to do so)
 		seekable = true;
 
diff --git a/src/decoder/plugins/GmeDecoderPlugin.cxx b/src/decoder/plugins/GmeDecoderPlugin.cxx
index 84365fae2658ebc2af6993d92cc8acdf559963df..4fb6af43ea52fb0b35e7a139c5f589508d84d146 100644
--- a/src/decoder/plugins/GmeDecoderPlugin.cxx
+++ b/src/decoder/plugins/GmeDecoderPlugin.cxx
@@ -108,7 +108,7 @@ ParseContainerPath(Path path_fs)
 }
 
 static Music_Emu*
-LoadGmeAndM3u(GmeContainerPath container) {
+LoadGmeAndM3u(const GmeContainerPath& container) {
 
 	const char *path = container.path.c_str();
 	const char *suffix = uri_get_suffix(path);