diff --git a/vcsh b/vcsh
index 508c087a9aae50fb7736b5e0ddefb2ef6fe33dbf..d6ee234a2ebd26e4ca10360f44701f304eefb1e4 100755
--- a/vcsh
+++ b/vcsh
@@ -365,7 +365,11 @@ write_gitignore() {
 			file="$new"
 		done;
 	done | sort -u)
-	tempfile=$(mktemp) || fatal "could not create tempfile" 51
+
+	# Contrary to GNU mktemp, mktemp on BSD/OSX requires a template for temp files
+	# Use the template GNU mktemo defaults to
+	tempfile=$(mktemp tmp.XXXXXXXXXX) || fatal "could not create tempfile" 51
+
 	echo '*' > "$tempfile" || fatal "could not write to '$tempfile'" 57
 	for gitignore in $gitignores; do
 		echo "$gitignore" | sed 's@^@!/@' >> "$tempfile" || fatal "could not write to '$tempfile'" 57