VALUE notmuch_rb_eNullPointerError;
 VALUE notmuch_rb_eTagTooLongError;
 VALUE notmuch_rb_eUnbalancedFreezeThawError;
+VALUE notmuch_rb_eUnbalancedAtomicError;
 
 ID ID_call;
 ID ID_db_create;
 
      */
     notmuch_rb_eUnbalancedFreezeThawError = rb_define_class_under(mod, "UnbalancedFreezeThawError",
             notmuch_rb_eBaseError);
-
+    /*
+     * Document-class: Notmuch::UnbalancedAtomicError
+     *
+     * Raised when notmuch_database_end_atomic has been called more times than
+     * notmuch_database_begin_atomic
+     */
+    notmuch_rb_eUnbalancedAtomicError = rb_define_class_under(mod, "UnbalancedAtomicError",
+            notmuch_rb_eBaseError);
     /*
      * Document-class: Notmuch::Database
      *
 
         rb_raise(notmuch_rb_eTagTooLongError, "tag too long");
     case NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW:
         rb_raise(notmuch_rb_eUnbalancedFreezeThawError, "unbalanced freeze/thaw");
+    case NOTMUCH_STATUS_UNBALANCED_ATOMIC:
+        rb_raise(notmuch_rb_eUnbalancedAtomicError, "unbalanced atomic");
     default:
         rb_raise(notmuch_rb_eBaseError, "unknown notmuch error");
     }