diff --git a/CHANGES.rst b/CHANGES.rst
index 24ed32f..6018a60 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -6,6 +6,7 @@ Changes
 
 - Allow to use the package with Python 3.13 -- Caution: No security
   audit has been done so far.
+- Add support for single mode statements / execution.
 
 
 7.1 (2024-03-14)
diff --git a/docs/usage/basic_usage.rst b/docs/usage/basic_usage.rst
index 13218b3..085432e 100644
--- a/docs/usage/basic_usage.rst
+++ b/docs/usage/basic_usage.rst
@@ -94,6 +94,62 @@ One common advanced usage would be to define an own restricted builtin dictionar
 
 There is a shortcut for ``{'__builtins__': safe_builtins}`` named ``safe_globals`` which can be imported from ``RestrictedPython``.
 
+Other Usages
+------------
+
+RestrictedPython has similar to normal Python multiple modes:
+
+* exec
+* eval
+* single
+* function
+
+you can use it by:
+
+.. testcode::
+
+    from RestrictedPython import compile_restricted
+
+    source_code = """
+    def do_something():
+        pass
+    """
+
+    byte_code = compile_restricted(
+        source_code,
+        filename='<inline code>',
+        mode='exec'
+    )
+    exec(byte_code)
+    do_something()
+
+.. testcode::
+
+    from RestrictedPython import compile_restricted
+
+    byte_code = compile_restricted(
+        "2 + 2",
+        filename='<inline code>',
+        mode='eval'
+    )
+    eval(byte_code)
+
+
+.. testcode:: single
+
+    from RestrictedPython import compile_restricted
+
+    byte_code = compile_restricted(
+        "2 + 2",
+        filename='<inline code>',
+        mode='single'
+    )
+    exec(byte_code)
+
+.. testoutput:: single
+
+    4
+
 Necessary setup
 ---------------
 
diff --git a/src/RestrictedPython/transformer.py b/src/RestrictedPython/transformer.py
index 66ae50f..9a205cc 100644
--- a/src/RestrictedPython/transformer.py
+++ b/src/RestrictedPython/transformer.py
@@ -593,6 +593,10 @@ class RestrictingNodeTransformer(ast.NodeTransformer):
             """
             return self.node_contents_visit(node)
 
+    def visit_Interactive(self, node):
+        """Allow single mode without restrictions."""
+        return self.node_contents_visit(node)
+
     def visit_List(self, node):
         """Allow list literals without restrictions."""
         return self.node_contents_visit(node)

diff --git a/tests/test_compile.py b/tests/test_compile.py
index 3dacd73..603ad84 100644
--- a/tests/test_compile.py
+++ b/tests/test_compile.py
@@ -160,13 +160,24 @@ def test_compile__compile_restricted_eval__used_names():
     assert result.used_names == {'a': True, 'b': True, 'x': True, 'func': True}
 
 
-def test_compile__compile_restricted_csingle():
+def test_compile__compile_restricted_single__1():
     """It compiles code as an Interactive."""
-    result = compile_restricted_single('4 * 6')
-    assert result.code is None
-    assert result.errors == (
-        'Line None: Interactive statements are not allowed.',
-    )
+    result = compile_restricted_single('x = 4 * 6')
+
+    assert result.errors == ()
+    assert result.warnings == []
+    assert result.code is not None
+    locals = {}
+    exec(result.code, {}, locals)
+    assert locals["x"] == 24
+
+
+def test_compile__compile_restricted__2():
+    """It compiles code as an Interactive."""
+    code = compile_restricted('x = 4 * 6', filename="<string>", mode="single")
+    locals = {}
+    exec(code, {}, locals)
+    assert locals["x"] == 24
 
 
 PRINT_EXAMPLE = """

Unable to compile single expressions
## PROBLEM REPORT

Attempted a simple `compile_restricted` using `single`.

```python
x = 50
code = compile_restricted('x + 25', '<string>', 'single')
```

### What I did:

Attempted a simple comparison with `compile()`. Also, compared it with `exec`.

```python
x = 50
code = compile('x + 25', '<string>', 'single')
exec(code)

assert x == 75
```

### What I expect to happen:

Should be able to compile a single expression and execute with the associated side-effects similar to `compile()`.

### What actually happened:

```
SyntaxError: ('Line None: Interactive statements are not allowed.',)
```

### What version of Python and Zope/Addons I am using:
Python 3.11.8
RestrictedPython 7.0
tests/test_compile.py::test_compile__compile_restricted_single__1 tests/test_compile.py::test_compile__compile_restricted__2
tests/test_compile.py::test_compile__compile_restricted_invalid_code_input tests/test_compile.py::test_compile__compile_restricted_invalid_policy_input tests/test_compile.py::test_compile__compile_restricted_invalid_mode_input tests/test_compile.py::test_compile__invalid_syntax tests/test_compile.py::test_compile__compile_restricted_exec__1 tests/test_compile.py::test_compile__compile_restricted_exec__2 tests/test_compile.py::test_compile__compile_restricted_exec__3 tests/test_compile.py::test_compile__compile_restricted_exec__4 tests/test_compile.py::test_compile__compile_restricted_exec__5 tests/test_compile.py::test_compile__compile_restricted_exec__10 tests/test_compile.py::test_compile__compile_restricted_eval__1 tests/test_compile.py::test_compile__compile_restricted_eval__2 tests/test_compile.py::test_compile__compile_restricted_eval__used_names tests/test_compile.py::test_compile_restricted tests/test_compile.py::test_compile_restricted_eval tests/test_compile.py::test_compile___compile_restricted_mode__1