diff --git a/gnu/packages/patches/xchat-2.8.8-configure-with-gmodule.patch b/gnu/packages/patches/xchat-2.8.8-configure-with-gmodule.patch
new file mode 100644
index 0000000000..ee8c347089
--- /dev/null
+++ b/gnu/packages/patches/xchat-2.8.8-configure-with-gmodule.patch
@@ -0,0 +1,29 @@
+Description: Don't strip -lgmodule-2.0 from RDYNAMIC_LIBS
+Author: R Veera Kumar <vkor@vkten.in>
+
+---
+diff -uN a/configure b/configure
+--- a/configure	2020-03-22 07:31:13.869314485 +0530
++++ b/configure	2020-03-22 07:33:25.295563550 +0530
+@@ -18010,7 +18010,7 @@
+ fi
+ 
+ 
+-				RDYNAMIC_FLAGS="`$pkgconfigpath gmodule-2.0 --libs | $sedpath 's/ -lgmodule-2.0//'`"
++				RDYNAMIC_FLAGS="`$pkgconfigpath gmodule-2.0 --libs`"
+ 		LIBS="$LIBS $RDYNAMIC_FLAGS"
+ 		if test "$LD" = ""; then
+ 			VS="`ld --help | grep version-script 2> /dev/null`"
+diff -uN a/configure.in b/configure.in
+--- a/configure.in	2020-03-22 07:26:51.872539516 +0530
++++ b/configure.in	2020-03-22 07:32:28.192334665 +0530
+@@ -445,8 +445,7 @@
+ 	if test "$have_dl" = yes; then
+ 		AC_DEFINE(USE_PLUGIN)
+ 		AC_PATH_PROG(pkgconfigpath, pkg-config)
+-		dnl we just need the -Wl,--export-dynamic, but not -lgmodule-2.0
+-		RDYNAMIC_FLAGS="`$pkgconfigpath gmodule-2.0 --libs | $sedpath 's/ -lgmodule-2.0//'`"
++		RDYNAMIC_FLAGS="`$pkgconfigpath gmodule-2.0 --libs`"
+ 		LIBS="$LIBS $RDYNAMIC_FLAGS"
+ 		if test "$LD" = ""; then
+ 			VS="`ld --help | grep version-script 2> /dev/null`"
diff --git a/gnu/packages/patches/xchat-2.8.8-glib-single-include.patch b/gnu/packages/patches/xchat-2.8.8-glib-single-include.patch
new file mode 100644
index 0000000000..e19b3b22e1
--- /dev/null
+++ b/gnu/packages/patches/xchat-2.8.8-glib-single-include.patch
@@ -0,0 +1,47 @@
+--- a/src/common/servlist.c
++++ b/src/common/servlist.c
+@@ -24,7 +24,7 @@
+ #include <unistd.h>
+ 
+ #include "xchat.h"
+-#include <glib/ghash.h>
++#include <glib.h>
+ 
+ #include "cfgfiles.h"
+ #include "fe.h"
+--- a/src/common/text.c
++++ b/src/common/text.c
+@@ -28,7 +28,7 @@
+ #include <sys/mman.h>
+ 
+ #include "xchat.h"
+-#include <glib/ghash.h>
++#include <glib.h>
+ #include "cfgfiles.h"
+ #include "chanopt.h"
+ #include "plugin.h"
+--- a/src/common/util.c
++++ b/src/common/util.c
+@@ -39,7 +39,7 @@
+ #include <errno.h>
+ #include "xchat.h"
+ #include "xchatc.h"
+-#include <glib/gmarkup.h>
++#include <glib.h>
+ #include <ctype.h>
+ #include "util.h"
+ #include "../../config.h"
+--- a/src/common/xchat.h
++++ b/src/common/xchat.h
+@@ -1,10 +1,6 @@
+ #include "../../config.h"
+ 
+-#include <glib/gslist.h>
+-#include <glib/glist.h>
+-#include <glib/gutils.h>
+-#include <glib/giochannel.h>
+-#include <glib/gstrfuncs.h>
++#include <glib.h>
+ #include <time.h>			/* need time_t */
+ 
+ #ifndef XCHAT_H
diff --git a/gnu/packages/xchat.scm b/gnu/packages/xchat.scm
new file mode 100644
index 0000000000..551a8e3ca5
--- /dev/null
+++ b/gnu/packages/xchat.scm
@@ -0,0 +1,49 @@
+(define-module (gnu packages xchat)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages pkg-config))
+
+(define-public xchat
+  (package
+    (name "xchat")
+    (version "2.8.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://xchat.org/files/source/2.8/xchat-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "02riy26ssnvqkbzvlc2lihdwfjh02j6fvl5xbmzy2xjmggcazdrp"))
+       (patches
+        (search-patches
+        "xchat-2.8.8-configure-with-gmodule.patch"
+        "xchat-2.8.8-glib-single-include.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libpng" ,libpng)
+       ("pango" ,pango)
+       ("glib" ,glib)
+       ("atk" , atk)
+       ("gtk+" ,gtk+-2)))
+    (arguments
+     `(#:configure-flags
+       (list
+         "--enable-plugin"
+         "--disable-nls"
+         "--disable-python"
+         "--disable-perl")
+       #:tests? #f))
+    (home-page "http://xchat.org/")
+    (synopsis "Graphical IRC client for X")
+    (description
+     "XChat is a fully-featured graphical IRC client using the GTK+ toolkit.
+It supports multiple server/channel windows, dialog windows and a plugin API.")
+    (license license:gpl2)))
