diff --git a/NEWS b/NEWS
index c4218b86d..3bb42ed36 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ ver 0.21.13 (not yet released)
   - cdio_paranoia: require libcdio-paranoia 10.2+0.93+1
 * decoder
   - mad: fix crackling sound (0.21.12 regression)
+* output
+  - jack: improved Windows compatibility
 
 ver 0.21.12 (2019/08/03)
 * decoder
diff --git a/src/output/plugins/JackOutputPlugin.cxx b/src/output/plugins/JackOutputPlugin.cxx
index 9204e9c1f..900c2baaf 100644
--- a/src/output/plugins/JackOutputPlugin.cxx
+++ b/src/output/plugins/JackOutputPlugin.cxx
@@ -531,7 +531,10 @@ JackOutput::Start()
 		jports = nullptr;
 	}
 
-	AtScopeExit(jports) { free(jports); };
+	AtScopeExit(jports) {
+		if (jports != nullptr)
+			jack_free(jports);
+	};
 
 	assert(num_dports > 0);