diff --git a/patterns/1f0702aaabef60a615abf41f_resources/resources.zip b/patterns/1f0702aaabef60a615abf41f_resources/resources.zip
index 1e40f32..35a6875 100644
Binary files a/patterns/1f0702aaabef60a615abf41f_resources/resources.zip and b/patterns/1f0702aaabef60a615abf41f_resources/resources.zip differ
diff --git a/patterns/204c22beaccdfd22727af378_labels/labels.zip b/patterns/204c22beaccdfd22727af378_labels/labels.zip
index a220271..23e733f 100644
Binary files a/patterns/204c22beaccdfd22727af378_labels/labels.zip and b/patterns/204c22beaccdfd22727af378_labels/labels.zip differ
diff --git a/patterns/204c22beaccdfd22727af378_template/webdata.zip b/patterns/204c22beaccdfd22727af378_template/webdata.zip
index 45af239..4ed3303 100644
Binary files a/patterns/204c22beaccdfd22727af378_template/webdata.zip and b/patterns/204c22beaccdfd22727af378_template/webdata.zip differ
diff --git a/patterns/4fcfadb4a5c946ead7e6e995_labels/labels.zip b/patterns/4fcfadb4a5c946ead7e6e995_labels/labels.zip
index a220271..23e733f 100644
Binary files a/patterns/4fcfadb4a5c946ead7e6e995_labels/labels.zip and b/patterns/4fcfadb4a5c946ead7e6e995_labels/labels.zip differ
diff --git a/patterns/4fcfadb4a5c946ead7e6e995_template/webdata.zip b/patterns/4fcfadb4a5c946ead7e6e995_template/webdata.zip
index 45af239..4ed3303 100644
Binary files a/patterns/4fcfadb4a5c946ead7e6e995_template/webdata.zip and b/patterns/4fcfadb4a5c946ead7e6e995_template/webdata.zip differ
diff --git a/patterns/584964c837512845d7940809_authStatesFile/recovery-preprocessing.xml b/patterns/584964c837512845d7940809_authStatesFile/recovery-preprocessing.xml
index ab6b182..f923a11 100644
--- a/patterns/584964c837512845d7940809_authStatesFile/recovery-preprocessing.xml
+++ b/patterns/584964c837512845d7940809_authStatesFile/recovery-preprocessing.xml
@@ -52,21 +52,27 @@
-
+
+
-
+
+
+
+
+
+
diff --git a/patterns/9a1d3c6052019748d3510261_authStatesFile/Recovery_createURLTicket.xml b/patterns/9a1d3c6052019748d3510261_authStatesFile/Recovery_createURLTicket.xml
index d4d10f9..3477242 100644
--- a/patterns/9a1d3c6052019748d3510261_authStatesFile/Recovery_createURLTicket.xml
+++ b/patterns/9a1d3c6052019748d3510261_authStatesFile/Recovery_createURLTicket.xml
@@ -1,5 +1,5 @@
-
+
@@ -8,4 +8,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/patterns/9a1d3c6052019748d3510261_resources/logRecoveryReason.groovy b/patterns/9a1d3c6052019748d3510261_resources/logRecoveryReason.groovy
new file mode 100644
index 0000000..0ffc42e
--- /dev/null
+++ b/patterns/9a1d3c6052019748d3510261_resources/logRecoveryReason.groovy
@@ -0,0 +1,10 @@
+def requester = 'unknown'
+def requestId = session['ch.nevis.auth.saml.request.id'] ?: 'unknown'
+def user = session['ch.adnovum.nevisidm.user.extId'] ?: 'unknown'
+def sourceIp = request.getLoginContext()['connection.HttpHeader.X-Real-IP'] ?: 'unknown'
+def userAgent = request.getLoginContext()['connection.HttpHeader.user-agent'] ?: request.getLoginContext()['connection.HttpHeader.User-Agent'] ?: 'unknown'
+def reason = session['agov.recovery.reason'] ?: 'unknown'
+
+LOG.info("Event='RECOVERY-REASON', Requester='${requester}', RequestId='${requestId}', User=${user}, SourceIp=${sourceIp}, UserAgent='${userAgent}', Reason='${reason}'")
+
+response.setResult('ok')
\ No newline at end of file
diff --git a/patterns/Recovery_createURLTicket_9a1d3c6052019748d3510261.yml b/patterns/Recovery_createURLTicket_9a1d3c6052019748d3510261.yml
index 2012353..a8953f4 100644
--- a/patterns/Recovery_createURLTicket_9a1d3c6052019748d3510261.yml
+++ b/patterns/Recovery_createURLTicket_9a1d3c6052019748d3510261.yml
@@ -9,3 +9,4 @@ pattern:
- "pattern://6364d27d1ca954be8ef7cb46"
onFailure:
- "pattern://6364d27d1ca954be8ef7cb46"
+ resources: "res://9a1d3c6052019748d3510261#resources"