diff --git a/lib/getinfo.c b/lib/getinfo.c
index e554931a9e53177cf32c8379c2d0e9174d9f6370..e7a4845248daf3e1e9b9c3d609cd158b3dc6e9f4 100644
--- a/lib/getinfo.c
+++ b/lib/getinfo.c
@@ -33,6 +33,7 @@
 #include <stdarg.h>
 #include <stdlib.h>
 #include "memory.h"
+#include "ssluse.h"
 
 /* Make this the last #include */
 #include "memdebug.h"
@@ -73,6 +74,7 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
   long *param_longp=NULL;
   double *param_doublep=NULL;
   char **param_charp=NULL;
+  struct curl_slist **param_slistp=NULL;
   va_start(arg, info);
 
   switch(info&CURLINFO_TYPEMASK) {
@@ -93,6 +95,11 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
     if(NULL == param_doublep)
       return CURLE_BAD_FUNCTION_ARGUMENT;
     break;
+  case CURLINFO_SLIST:
+    param_slistp = va_arg(arg, struct curl_slist **);
+    if(NULL == param_slistp)
+      return CURLE_BAD_FUNCTION_ARGUMENT;
+    break;
   }
 
   switch(info) {
@@ -174,6 +181,10 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
   case CURLINFO_NUM_CONNECTS:
     *param_longp = data->info.numconnects;
     break;
+  case CURLINFO_SSL_ENGINES:
+    Curl_SSL_engines_list(data);
+    *param_slistp = data->engine_list;
+    break;
   default:
     return CURLE_BAD_FUNCTION_ARGUMENT;
   }