diff --git a/mockserver-tests/src/test/groovy/pl/touk/mockserver/tests/MockServerIntegrationTest.groovy b/mockserver-tests/src/test/groovy/pl/touk/mockserver/tests/MockServerIntegrationTest.groovy
index 077a893..7790522 100644
--- a/mockserver-tests/src/test/groovy/pl/touk/mockserver/tests/MockServerIntegrationTest.groovy
+++ b/mockserver-tests/src/test/groovy/pl/touk/mockserver/tests/MockServerIntegrationTest.groovy
@@ -839,4 +839,31 @@ class MockServerIntegrationTest extends Specification {
             false      | 1
             true       | 0
     }
+
+    @Unroll
+    def "should reject mock when it has System.exit in closure"() {
+        when:
+            remoteMockServer.addMock(new AddMockRequestData(
+                    name: 'testRest',
+                    path: 'testEndpoint',
+                    port: 9999,
+                    predicate: predicate,
+                    response: '''{req -> "<goodResponseRest-${req.xml.name()}/>"}''',
+                    soap: false
+            ))
+        then:
+            thrown(InvalidMockDefinition)
+        expect:
+            remoteMockServer.listMocks() == []
+        where:
+            predicate << [
+                    '''{req -> System.exit(-1); req.xml.name() == 'request'}''',
+                    '''{req -> System     .exit(-1); req.xml.name() == 'request'}''',
+                    '''{req -> System
+
+                        .exit(-1); req.xml.name() == 'request'}''',
+                    '''{req -> System.    exit(-1); req.xml.name() == 'request'}''',
+                    '''{req -> System.exit   (-1); req.xml.name() == 'request'}'''
+            ]
+    }
 }
diff --git a/mockserver/src/main/groovy/pl/touk/mockserver/server/Mock.groovy b/mockserver/src/main/groovy/pl/touk/mockserver/server/Mock.groovy
index 61a8132..25f0168 100644
--- a/mockserver/src/main/groovy/pl/touk/mockserver/server/Mock.groovy
+++ b/mockserver/src/main/groovy/pl/touk/mockserver/server/Mock.groovy
@@ -18,7 +18,7 @@ class Mock implements Comparable<Mock> {
     String responseHeadersClosureText = '{ _ -> [:] }'
     Closure predicate = toClosure(predicateClosureText)
     Closure response = toClosure(responseClosureText)
-    Closure responseHeaders =toClosure(responseHeadersClosureText)
+    Closure responseHeaders = toClosure(responseHeadersClosureText)
     boolean soap = false
     int statusCode = 200
     String method = 'POST'
@@ -64,6 +64,9 @@ class Mock implements Comparable<Mock> {
     }
 
     private Closure toClosure(String predicate) {
+        if (predicate ==~ /(?m).*System\s*\.\s*exit\s*\(.*/) {
+            throw new RuntimeException('System.exit is forbidden')
+        }
         GroovyShell sh = new GroovyShell(this.class.classLoader);
         return sh.evaluate(predicate) as Closure
     }