diff --git a/gnu-system.am b/gnu-system.am
index 77c78366717a6d816d123a63a7112c2b8502d05f..d3e91ed05b942f8997940f39c3536bf0f4bfe5e1 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -562,6 +562,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/w3m-fix-compile.patch			\
   gnu/packages/patches/webkitgtk-2.4.8-gmutexlocker.patch	\
   gnu/packages/patches/weex-vacopy.patch			\
+  gnu/packages/patches/wicd-template-instantiation.patch	\
   gnu/packages/patches/wicd-urwid-1.3.patch			\
   gnu/packages/patches/wmctrl-64-fix.patch			\
   gnu/packages/patches/wpa-supplicant-CVE-2015-1863.patch	\
diff --git a/gnu/packages/patches/wicd-template-instantiation.patch b/gnu/packages/patches/wicd-template-instantiation.patch
new file mode 100644
index 0000000000000000000000000000000000000000..16d8fa6e1d8312667bca5b0304e4979b3d7d7026
--- /dev/null
+++ b/gnu/packages/patches/wicd-template-instantiation.patch
@@ -0,0 +1,29 @@
+Wicd 1.7.3 fails to instantiate template lines that have several
+variable references.  For instance, the line:
+
+  wep_key$_KEY_INDEX=$_KEY
+
+which is found in in the 'wep-hex' template, expands to these two
+lines:
+
+  wep_key0=$_KEY
+  wep_key0=123456789ab
+
+This patch fixes that by only emitting the fully substituted line.
+
+Patch by Ludovic Courtès <ludo@gnu.org>.
+
+--- a/wicd/misc.py	2012-11-17 00:07:08 +0000
++++ b/wicd/misc.py	2015-05-09 11:22:37 +0000
+@@ -321,11 +321,11 @@ def ParseEncryption(network):
+                                 rep_val = '0'
+                         if rep_val:
+                             line = line.replace("$_%s" % cur_val, str(rep_val))
+-                            config_file = ''.join([config_file, line])
+                         else:
+                             print "Ignoring template line: '%s'" % line
+                     else:
+                         print "Weird parsing error occurred"
++                config_file = ''.join([config_file, line])
+             else:  # Just a regular entry.
+                 config_file = ''.join([config_file, line])
diff --git a/gnu/packages/wicd.scm b/gnu/packages/wicd.scm
index 1953a56b6c3890c748d258e7acfd07048cf4df50..779ec84e3c337d0c2bedfd3bf670ad98c718109e 100644
--- a/gnu/packages/wicd.scm
+++ b/gnu/packages/wicd.scm
@@ -44,7 +44,9 @@ (define-public wicd
                            "/+download/wicd-" version ".tar.gz"))
        (sha256
         (base32 "00c4rq753bhg64rv1v9yl834ssq7igyy7cz3swp287b5n5bqiqwi"))
-       (patches (list (search-patch "wicd-urwid-1.3.patch")))))
+       (patches (map search-patch
+                     '("wicd-urwid-1.3.patch"
+                       "wicd-template-instantiation.patch")))))
     (build-system python-build-system)
     (native-inputs `(("gettext" ,gnu-gettext)))
     (inputs `(("dbus" ,dbus)