diff --git a/ipmitool/ipmitool-1.8.17-solactivate.patch b/ipmitool/ipmitool-1.8.17-solactivate.patch
new file mode 100644
index 0000000..1aee0e4
--- /dev/null
+++ b/ipmitool/ipmitool-1.8.17-solactivate.patch
@@ -0,0 +1,13 @@
+diff -uNr ipmitool-1.8.17/lib/ipmi_sol.c ipmitool-1.8.17-solactivate/lib/ipmi_sol.c
+--- ipmitool-1.8.17/lib/ipmi_sol.c	2016-05-06 10:48:54.000000000 -0400
++++ ipmitool-1.8.17-solactivate/lib/ipmi_sol.c	2016-09-27 13:55:08.091124971 -0400
+@@ -1652,6 +1652,9 @@
+ 				{
+ 					output(rs);
+ 				}
++                                else {
++                                        bShouldExit = bBmcClosedSession = 1;
++                                }
+ 				/*
+ 				 * Should recv_sol come back null, the incoming packet was not ours.
+ 				 * Just fall through, the keepalive logic will determine if
diff --git a/ipmitool/ipmitool.spec b/ipmitool/ipmitool.spec
index 2d736be..3ba13df 100644
--- a/ipmitool/ipmitool.spec
+++ b/ipmitool/ipmitool.spec
@@ -8,7 +8,7 @@ Packager:     IBM Corp.
 Source:       ipmitool-%{version}.tar.gz
 Patch:        ipmitool-%{version}-saneretry.patch
 Patch2:       ipmitool-%{version}-rflash.patch
-#Patch3:       ipmitool-%{version}-solactivate.patch
+Patch3:       ipmitool-%{version}-solactivate.patch
 Patch4:       ipmitool-%{version}-signal.patch
 Buildroot:    /var/tmp/ipmitool-root
 
@@ -35,7 +35,7 @@ fi
 %setup -n ipmitool-%{version}
 %patch -p1
 %patch2 -p1
-#%patch3 -p1
+%patch3 -p1
 %patch4 -p1
 
 %build