diff --git a/test/cases/asset-modules-salted/expected/c9e192c015437a21dea1.svg b/test/cases/asset-modules-salted/expected/c9e192c015437a21dea1.svg
new file mode 100644
index 00000000..5b3b22a4
--- /dev/null
+++ b/test/cases/asset-modules-salted/expected/c9e192c015437a21dea1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/test/cases/asset-modules-salted/expected/main.css b/test/cases/asset-modules-salted/expected/main.css
new file mode 100644
index 00000000..6e5140dd
--- /dev/null
+++ b/test/cases/asset-modules-salted/expected/main.css
@@ -0,0 +1,5 @@
+body {
+ background: red;
+ background-image: url(c9e192c015437a21dea1.svg);
+}
+
diff --git a/test/cases/asset-modules-salted/index.js b/test/cases/asset-modules-salted/index.js
new file mode 100644
index 00000000..aa3357bf
--- /dev/null
+++ b/test/cases/asset-modules-salted/index.js
@@ -0,0 +1 @@
+import './style.css';
diff --git a/test/cases/asset-modules-salted/react.svg b/test/cases/asset-modules-salted/react.svg
new file mode 100644
index 00000000..5b3b22a4
--- /dev/null
+++ b/test/cases/asset-modules-salted/react.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/test/cases/asset-modules-salted/style.css b/test/cases/asset-modules-salted/style.css
new file mode 100644
index 00000000..52c2b3e4
--- /dev/null
+++ b/test/cases/asset-modules-salted/style.css
@@ -0,0 +1,4 @@
+body {
+ background: red;
+ background-image: url(./react.svg);
+}
diff --git a/test/cases/asset-modules-salted/test.filter.js b/test/cases/asset-modules-salted/test.filter.js
new file mode 100644
index 00000000..042a0256
--- /dev/null
+++ b/test/cases/asset-modules-salted/test.filter.js
@@ -0,0 +1,3 @@
+const webpack = require('webpack');
+
+module.exports = () => webpack.version[0] !== '4';
diff --git a/test/cases/asset-modules-salted/webpack.config.js b/test/cases/asset-modules-salted/webpack.config.js
new file mode 100644
index 00000000..27119c4f
--- /dev/null
+++ b/test/cases/asset-modules-salted/webpack.config.js
@@ -0,0 +1,36 @@
+import Self from '../../../src';
+
+/**
+ * Bug report:
+ * Setting output.hashSalt together with optimization.realContentHash (e.g. prod mode)
+ * results in wrong urls for asset-modules.
+ */
+
+module.exports = {
+ entry: './index.js',
+ output: {
+ // if salt is omitted, the realContentHash value works in css
+ hashSalt: 'i break things',
+ },
+ optimization: {
+ // if this is disabled, filenames match even with hashSalt
+ realContentHash: true,
+ },
+ module: {
+ rules: [
+ {
+ test: /\.css$/,
+ use: [Self.loader, 'css-loader'],
+ },
+ {
+ test: /\.svg$/,
+ type: 'asset/resource',
+ },
+ ],
+ },
+ plugins: [
+ new Self({
+ filename: '[name].css',
+ }),
+ ],
+};