diff --git a/src/util/RuntimeError.hxx b/src/util/RuntimeError.hxx
index 8a3c86cb7..2d36d47ff 100644
--- a/src/util/RuntimeError.hxx
+++ b/src/util/RuntimeError.hxx
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2015 Max Kellermann <max.kellermann@gmail.com>
+ * Copyright (C) 2013-20157Max Kellermann <max.kellermann@gmail.com>
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -44,4 +44,13 @@ FormatRuntimeError(const char *fmt, Args&&... args) noexcept
 	return std::runtime_error(buffer);
 }
 
+template<typename... Args>
+inline std::invalid_argument
+FormatInvalidArgument(const char *fmt, Args&&... args) noexcept
+{
+	char buffer[1024];
+	snprintf(buffer, sizeof(buffer), fmt, std::forward<Args>(args)...);
+	return std::invalid_argument(buffer);
+}
+
 #endif