diff --git a/main/uwsgi/APKBUILD b/main/uwsgi/APKBUILD
index c2e57c48aae1ec8ba006261a790ba5045762982f..8fa364d9a182548a93959a5e136ed68a3bf78baf 100644
--- a/main/uwsgi/APKBUILD
+++ b/main/uwsgi/APKBUILD
@@ -4,7 +4,7 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=uwsgi
 pkgver=2.0.18
-pkgrel=7
+pkgrel=8
 pkgdesc="uWSGI application container server"
 url="http://projects.unbit.it/uwsgi/"
 arch="all"
@@ -39,6 +39,7 @@ source="http://projects.unbit.it/downloads/uwsgi-$pkgver.tar.gz
 	alpine.buildconf
 	musl-fix-python.patch
 	musl-ucontext.patch
+	close-fd.patch
 	"
 options="!check"
 
@@ -214,4 +215,5 @@ sha512sums="6561703279bcc4a81311d033810ac066d0f113bab13b0942f3eef86cac29c584a664
 2798c9d2e49e29292ffe6a5a29b866301c78d5f322fc5d07dfa9569efdaa5220237a5f6744652fbdd957be29311ddaff190541333f042cbf0e907dfa98ce3e2a  readme.emperor
 f3cff00926929a5bb40afafb65fd5228582af35fbf524562282020c4c4ae9c659231b2381f4b3cceb18e8f3f6c888c21bdd8ed4ddcd81e92fbc6a0891800ce38  alpine.buildconf
 de68b16b44e554a79c073c9befa10566796316dbf4c375b4d6b633d80b0282694cca233f0a70f3d6570584324f14276826bbeb8f38b550c00087a05f9ba9227f  musl-fix-python.patch
-d4b93e51619af5f8839cdc7279c69462947910df03104cfe6180d606403940fc60ad5dac66425ce8acbab67cc0c4f3e13126da0a329720cb03c67d447cd94ad9  musl-ucontext.patch"
+d4b93e51619af5f8839cdc7279c69462947910df03104cfe6180d606403940fc60ad5dac66425ce8acbab67cc0c4f3e13126da0a329720cb03c67d447cd94ad9  musl-ucontext.patch
+be5859c38101f34630fbe0cce4213565fc4d8dd6c63dcc47fd44fa36c001b437677795db9abb470bcd522861c4936d49c43422846e0a8fff8730eac4ce8d75d3  close-fd.patch"
diff --git a/main/uwsgi/close-fd.patch b/main/uwsgi/close-fd.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d72940298c54c1bcb0bbecf9a48ffdda498a3337
--- /dev/null
+++ b/main/uwsgi/close-fd.patch
@@ -0,0 +1,28 @@
+diff --git a/plugins/cgi/cgi_plugin.c b/plugins/cgi/cgi_plugin.c
+index d640b5e5..1e687002 100644
+--- a/plugins/cgi/cgi_plugin.c
++++ b/plugins/cgi/cgi_plugin.c
+@@ -793,8 +793,21 @@ clear2:
+ 	close(cgi_pipe[1]);
+ 
+ 	// close all the fd > 2
+-	for(i=3;i<(int)uwsgi.max_fd;i++) {
+-		close(i);
++	DIR *dirp = opendir("/proc/self/fd");
++	if (dirp == NULL)
++		dirp = opendir("/dev/fd");
++	if (dirp != NULL) {
++		struct dirent *dent;
++		while ((dent = readdir(dirp)) != NULL) {
++			int fd = atoi(dent->d_name);
++			if ((fd > 2) && fd != dirfd(dirp))
++				close(fd);
++		}
++		closedir(dirp);
++	} else {
++		for(i=3;i<(int)uwsgi.max_fd;i++) {
++			close(i);
++		}
+ 	}
+ 
+ 	// fill cgi env