diff --git a/LiSE/LiSE/handle.py b/LiSE/LiSE/handle.py
index <HASH>..<HASH> 100644
--- a/LiSE/LiSE/handle.py
+++ b/LiSE/LiSE/handle.py
@@ -19,6 +19,17 @@ from .util import (
 from allegedb.cache import HistoryError
 
 
+def branching(fun):
+    def brancher(self, *args, **kwargs):
+        try:
+            fun(self, *args, **kwargs)
+        except HistoryError:
+            self.increment_branch()
+            fun(self, *args, **kwargs)
+        return self.branch
+    return brancher
+
+
 class EngineHandle(object):
     """A wrapper for a :class:`LiSE.Engine` object that runs in the same
     process, but with an API built to be used in a command-processing
@@ -279,16 +290,6 @@ class EngineHandle(object):
         ret = self._universal_cache[k] = self._real.universal[k]
         return ret
 
-    def branching(fun):
-        def brancher(self, *args, **kwargs):
-            try:
-                fun(self, *args, **kwargs)
-            except HistoryError:
-                self.increment_branch()
-                fun(self, *args, **kwargs)
-            return self.branch
-        return brancher
-
     @branching
     def set_universal(self, k, v):
         self._real.universal[k] = v
Move ``branching`` decorator out of ``EngineHandle``