diff --git a/mainline/alpine-perl/10-listen-on-ipv6-by-default.sh b/mainline/alpine-perl/10-listen-on-ipv6-by-default.sh
index 4c52245b92e077dd7c501c6e131cddf61290075a..0ee48721cf43fc4852b680624e47434b239e0269 100755
--- a/mainline/alpine-perl/10-listen-on-ipv6-by-default.sh
+++ b/mainline/alpine-perl/10-listen-on-ipv6-by-default.sh
@@ -7,21 +7,19 @@ ME=$(basename $0)
 DEFAULT_CONF_FILE="etc/nginx/conf.d/default.conf"
 
 # check if we have ipv6 available
-if [ -f "/proc/net/if_inet6" ]; then
-    continue
-else
+if [ ! -f "/proc/net/if_inet6" ]; then
     echo "$ME: ipv6 not available, exiting" 1>&2
     exit 0
 fi
 
-
-if [ -f "/$DEFAULT_CONF_FILE" ]; then
-    continue
-else
+if [ ! -f "/$DEFAULT_CONF_FILE" ]; then
     echo "$ME: /$DEFAULT_CONF_FILE is not a file or does not exist, exiting" 1>&2
     exit 0
 fi
 
+# check if the file is already modified, e.g. on a container restart
+grep -q "listen  \[::]\:80;" /$DEFAULT_CONF_FILE && { echo "$ME: IPv6 listen already enabled, exiting"; exit 0; }
+
 if [ -f "/etc/os-release" ]; then
     . /etc/os-release
 else
@@ -34,7 +32,7 @@ echo "$ME: Getting the checksum of /$DEFAULT_CONF_FILE"
 case "$ID" in
     "debian")
         CHECKSUM=$(dpkg-query --show --showformat='${Conffiles}\n' nginx | grep $DEFAULT_CONF_FILE | cut -d' ' -f 3)
-        echo "$CHECKSUM /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
+        echo "$CHECKSUM  /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
             echo "$ME: /$DEFAULT_CONF_FILE differs from the packaged version, exiting" 1>&2
             exit 0
         }
diff --git a/mainline/alpine/10-listen-on-ipv6-by-default.sh b/mainline/alpine/10-listen-on-ipv6-by-default.sh
index 4c52245b92e077dd7c501c6e131cddf61290075a..0ee48721cf43fc4852b680624e47434b239e0269 100755
--- a/mainline/alpine/10-listen-on-ipv6-by-default.sh
+++ b/mainline/alpine/10-listen-on-ipv6-by-default.sh
@@ -7,21 +7,19 @@ ME=$(basename $0)
 DEFAULT_CONF_FILE="etc/nginx/conf.d/default.conf"
 
 # check if we have ipv6 available
-if [ -f "/proc/net/if_inet6" ]; then
-    continue
-else
+if [ ! -f "/proc/net/if_inet6" ]; then
     echo "$ME: ipv6 not available, exiting" 1>&2
     exit 0
 fi
 
-
-if [ -f "/$DEFAULT_CONF_FILE" ]; then
-    continue
-else
+if [ ! -f "/$DEFAULT_CONF_FILE" ]; then
     echo "$ME: /$DEFAULT_CONF_FILE is not a file or does not exist, exiting" 1>&2
     exit 0
 fi
 
+# check if the file is already modified, e.g. on a container restart
+grep -q "listen  \[::]\:80;" /$DEFAULT_CONF_FILE && { echo "$ME: IPv6 listen already enabled, exiting"; exit 0; }
+
 if [ -f "/etc/os-release" ]; then
     . /etc/os-release
 else
@@ -34,7 +32,7 @@ echo "$ME: Getting the checksum of /$DEFAULT_CONF_FILE"
 case "$ID" in
     "debian")
         CHECKSUM=$(dpkg-query --show --showformat='${Conffiles}\n' nginx | grep $DEFAULT_CONF_FILE | cut -d' ' -f 3)
-        echo "$CHECKSUM /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
+        echo "$CHECKSUM  /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
             echo "$ME: /$DEFAULT_CONF_FILE differs from the packaged version, exiting" 1>&2
             exit 0
         }
diff --git a/mainline/buster-perl/10-listen-on-ipv6-by-default.sh b/mainline/buster-perl/10-listen-on-ipv6-by-default.sh
index 4c52245b92e077dd7c501c6e131cddf61290075a..0ee48721cf43fc4852b680624e47434b239e0269 100755
--- a/mainline/buster-perl/10-listen-on-ipv6-by-default.sh
+++ b/mainline/buster-perl/10-listen-on-ipv6-by-default.sh
@@ -7,21 +7,19 @@ ME=$(basename $0)
 DEFAULT_CONF_FILE="etc/nginx/conf.d/default.conf"
 
 # check if we have ipv6 available
-if [ -f "/proc/net/if_inet6" ]; then
-    continue
-else
+if [ ! -f "/proc/net/if_inet6" ]; then
     echo "$ME: ipv6 not available, exiting" 1>&2
     exit 0
 fi
 
-
-if [ -f "/$DEFAULT_CONF_FILE" ]; then
-    continue
-else
+if [ ! -f "/$DEFAULT_CONF_FILE" ]; then
     echo "$ME: /$DEFAULT_CONF_FILE is not a file or does not exist, exiting" 1>&2
     exit 0
 fi
 
+# check if the file is already modified, e.g. on a container restart
+grep -q "listen  \[::]\:80;" /$DEFAULT_CONF_FILE && { echo "$ME: IPv6 listen already enabled, exiting"; exit 0; }
+
 if [ -f "/etc/os-release" ]; then
     . /etc/os-release
 else
@@ -34,7 +32,7 @@ echo "$ME: Getting the checksum of /$DEFAULT_CONF_FILE"
 case "$ID" in
     "debian")
         CHECKSUM=$(dpkg-query --show --showformat='${Conffiles}\n' nginx | grep $DEFAULT_CONF_FILE | cut -d' ' -f 3)
-        echo "$CHECKSUM /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
+        echo "$CHECKSUM  /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
             echo "$ME: /$DEFAULT_CONF_FILE differs from the packaged version, exiting" 1>&2
             exit 0
         }
diff --git a/mainline/buster/10-listen-on-ipv6-by-default.sh b/mainline/buster/10-listen-on-ipv6-by-default.sh
index 4c52245b92e077dd7c501c6e131cddf61290075a..0ee48721cf43fc4852b680624e47434b239e0269 100755
--- a/mainline/buster/10-listen-on-ipv6-by-default.sh
+++ b/mainline/buster/10-listen-on-ipv6-by-default.sh
@@ -7,21 +7,19 @@ ME=$(basename $0)
 DEFAULT_CONF_FILE="etc/nginx/conf.d/default.conf"
 
 # check if we have ipv6 available
-if [ -f "/proc/net/if_inet6" ]; then
-    continue
-else
+if [ ! -f "/proc/net/if_inet6" ]; then
     echo "$ME: ipv6 not available, exiting" 1>&2
     exit 0
 fi
 
-
-if [ -f "/$DEFAULT_CONF_FILE" ]; then
-    continue
-else
+if [ ! -f "/$DEFAULT_CONF_FILE" ]; then
     echo "$ME: /$DEFAULT_CONF_FILE is not a file or does not exist, exiting" 1>&2
     exit 0
 fi
 
+# check if the file is already modified, e.g. on a container restart
+grep -q "listen  \[::]\:80;" /$DEFAULT_CONF_FILE && { echo "$ME: IPv6 listen already enabled, exiting"; exit 0; }
+
 if [ -f "/etc/os-release" ]; then
     . /etc/os-release
 else
@@ -34,7 +32,7 @@ echo "$ME: Getting the checksum of /$DEFAULT_CONF_FILE"
 case "$ID" in
     "debian")
         CHECKSUM=$(dpkg-query --show --showformat='${Conffiles}\n' nginx | grep $DEFAULT_CONF_FILE | cut -d' ' -f 3)
-        echo "$CHECKSUM /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
+        echo "$CHECKSUM  /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
             echo "$ME: /$DEFAULT_CONF_FILE differs from the packaged version, exiting" 1>&2
             exit 0
         }
diff --git a/stable/alpine-perl/10-listen-on-ipv6-by-default.sh b/stable/alpine-perl/10-listen-on-ipv6-by-default.sh
index 4c52245b92e077dd7c501c6e131cddf61290075a..0ee48721cf43fc4852b680624e47434b239e0269 100755
--- a/stable/alpine-perl/10-listen-on-ipv6-by-default.sh
+++ b/stable/alpine-perl/10-listen-on-ipv6-by-default.sh
@@ -7,21 +7,19 @@ ME=$(basename $0)
 DEFAULT_CONF_FILE="etc/nginx/conf.d/default.conf"
 
 # check if we have ipv6 available
-if [ -f "/proc/net/if_inet6" ]; then
-    continue
-else
+if [ ! -f "/proc/net/if_inet6" ]; then
     echo "$ME: ipv6 not available, exiting" 1>&2
     exit 0
 fi
 
-
-if [ -f "/$DEFAULT_CONF_FILE" ]; then
-    continue
-else
+if [ ! -f "/$DEFAULT_CONF_FILE" ]; then
     echo "$ME: /$DEFAULT_CONF_FILE is not a file or does not exist, exiting" 1>&2
     exit 0
 fi
 
+# check if the file is already modified, e.g. on a container restart
+grep -q "listen  \[::]\:80;" /$DEFAULT_CONF_FILE && { echo "$ME: IPv6 listen already enabled, exiting"; exit 0; }
+
 if [ -f "/etc/os-release" ]; then
     . /etc/os-release
 else
@@ -34,7 +32,7 @@ echo "$ME: Getting the checksum of /$DEFAULT_CONF_FILE"
 case "$ID" in
     "debian")
         CHECKSUM=$(dpkg-query --show --showformat='${Conffiles}\n' nginx | grep $DEFAULT_CONF_FILE | cut -d' ' -f 3)
-        echo "$CHECKSUM /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
+        echo "$CHECKSUM  /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
             echo "$ME: /$DEFAULT_CONF_FILE differs from the packaged version, exiting" 1>&2
             exit 0
         }
diff --git a/stable/alpine/10-listen-on-ipv6-by-default.sh b/stable/alpine/10-listen-on-ipv6-by-default.sh
index 4c52245b92e077dd7c501c6e131cddf61290075a..0ee48721cf43fc4852b680624e47434b239e0269 100755
--- a/stable/alpine/10-listen-on-ipv6-by-default.sh
+++ b/stable/alpine/10-listen-on-ipv6-by-default.sh
@@ -7,21 +7,19 @@ ME=$(basename $0)
 DEFAULT_CONF_FILE="etc/nginx/conf.d/default.conf"
 
 # check if we have ipv6 available
-if [ -f "/proc/net/if_inet6" ]; then
-    continue
-else
+if [ ! -f "/proc/net/if_inet6" ]; then
     echo "$ME: ipv6 not available, exiting" 1>&2
     exit 0
 fi
 
-
-if [ -f "/$DEFAULT_CONF_FILE" ]; then
-    continue
-else
+if [ ! -f "/$DEFAULT_CONF_FILE" ]; then
     echo "$ME: /$DEFAULT_CONF_FILE is not a file or does not exist, exiting" 1>&2
     exit 0
 fi
 
+# check if the file is already modified, e.g. on a container restart
+grep -q "listen  \[::]\:80;" /$DEFAULT_CONF_FILE && { echo "$ME: IPv6 listen already enabled, exiting"; exit 0; }
+
 if [ -f "/etc/os-release" ]; then
     . /etc/os-release
 else
@@ -34,7 +32,7 @@ echo "$ME: Getting the checksum of /$DEFAULT_CONF_FILE"
 case "$ID" in
     "debian")
         CHECKSUM=$(dpkg-query --show --showformat='${Conffiles}\n' nginx | grep $DEFAULT_CONF_FILE | cut -d' ' -f 3)
-        echo "$CHECKSUM /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
+        echo "$CHECKSUM  /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
             echo "$ME: /$DEFAULT_CONF_FILE differs from the packaged version, exiting" 1>&2
             exit 0
         }
diff --git a/stable/buster-perl/10-listen-on-ipv6-by-default.sh b/stable/buster-perl/10-listen-on-ipv6-by-default.sh
index 4c52245b92e077dd7c501c6e131cddf61290075a..0ee48721cf43fc4852b680624e47434b239e0269 100755
--- a/stable/buster-perl/10-listen-on-ipv6-by-default.sh
+++ b/stable/buster-perl/10-listen-on-ipv6-by-default.sh
@@ -7,21 +7,19 @@ ME=$(basename $0)
 DEFAULT_CONF_FILE="etc/nginx/conf.d/default.conf"
 
 # check if we have ipv6 available
-if [ -f "/proc/net/if_inet6" ]; then
-    continue
-else
+if [ ! -f "/proc/net/if_inet6" ]; then
     echo "$ME: ipv6 not available, exiting" 1>&2
     exit 0
 fi
 
-
-if [ -f "/$DEFAULT_CONF_FILE" ]; then
-    continue
-else
+if [ ! -f "/$DEFAULT_CONF_FILE" ]; then
     echo "$ME: /$DEFAULT_CONF_FILE is not a file or does not exist, exiting" 1>&2
     exit 0
 fi
 
+# check if the file is already modified, e.g. on a container restart
+grep -q "listen  \[::]\:80;" /$DEFAULT_CONF_FILE && { echo "$ME: IPv6 listen already enabled, exiting"; exit 0; }
+
 if [ -f "/etc/os-release" ]; then
     . /etc/os-release
 else
@@ -34,7 +32,7 @@ echo "$ME: Getting the checksum of /$DEFAULT_CONF_FILE"
 case "$ID" in
     "debian")
         CHECKSUM=$(dpkg-query --show --showformat='${Conffiles}\n' nginx | grep $DEFAULT_CONF_FILE | cut -d' ' -f 3)
-        echo "$CHECKSUM /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
+        echo "$CHECKSUM  /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
             echo "$ME: /$DEFAULT_CONF_FILE differs from the packaged version, exiting" 1>&2
             exit 0
         }
diff --git a/stable/buster/10-listen-on-ipv6-by-default.sh b/stable/buster/10-listen-on-ipv6-by-default.sh
index 4c52245b92e077dd7c501c6e131cddf61290075a..0ee48721cf43fc4852b680624e47434b239e0269 100755
--- a/stable/buster/10-listen-on-ipv6-by-default.sh
+++ b/stable/buster/10-listen-on-ipv6-by-default.sh
@@ -7,21 +7,19 @@ ME=$(basename $0)
 DEFAULT_CONF_FILE="etc/nginx/conf.d/default.conf"
 
 # check if we have ipv6 available
-if [ -f "/proc/net/if_inet6" ]; then
-    continue
-else
+if [ ! -f "/proc/net/if_inet6" ]; then
     echo "$ME: ipv6 not available, exiting" 1>&2
     exit 0
 fi
 
-
-if [ -f "/$DEFAULT_CONF_FILE" ]; then
-    continue
-else
+if [ ! -f "/$DEFAULT_CONF_FILE" ]; then
     echo "$ME: /$DEFAULT_CONF_FILE is not a file or does not exist, exiting" 1>&2
     exit 0
 fi
 
+# check if the file is already modified, e.g. on a container restart
+grep -q "listen  \[::]\:80;" /$DEFAULT_CONF_FILE && { echo "$ME: IPv6 listen already enabled, exiting"; exit 0; }
+
 if [ -f "/etc/os-release" ]; then
     . /etc/os-release
 else
@@ -34,7 +32,7 @@ echo "$ME: Getting the checksum of /$DEFAULT_CONF_FILE"
 case "$ID" in
     "debian")
         CHECKSUM=$(dpkg-query --show --showformat='${Conffiles}\n' nginx | grep $DEFAULT_CONF_FILE | cut -d' ' -f 3)
-        echo "$CHECKSUM /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
+        echo "$CHECKSUM  /$DEFAULT_CONF_FILE" | md5sum -c - >/dev/null 2>&1 || {
             echo "$ME: /$DEFAULT_CONF_FILE differs from the packaged version, exiting" 1>&2
             exit 0
         }