diff --git a/lib/modules/Protocols.pmod/X.pmod/Requests.pmod b/lib/modules/Protocols.pmod/X.pmod/Requests.pmod
index 604add1631c8d5550c69d990dc2b3cd740b4af0b..2541bf6cdf004d178d1a0c6a1fce3f6e1c04a4b9 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Requests.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Requests.pmod
@@ -741,6 +741,15 @@ class CreateColormap
   }
 }
 
+class Bell {
+  inherit request;
+  constant reqType = 104;
+  
+  int volume;
+
+  string to_string() { return build_request("", volume); }
+}
+
 class AllocColor
 {
   inherit request;
diff --git a/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod b/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod
index e4d7afd1698a6bd670b096e1210e4e37adf0ed26..8c3cf5952b3460a1b94af64b0aac416232fae8a2 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod
@@ -946,4 +946,16 @@ class Display
     send_request(req);
     return Types.Cursor(this_object(), req->cid);
   }
+  
+  object Bell_req(int volume)
+  {
+    object req=Requests.Bell();
+    req->volume=volume;
+    return req;
+  }
+  
+  void Bell(int volume)
+  {
+    send_request(Bell_req(volume));
+  }
 }