diff --git a/include/ast_video_puller.hpp b/include/ast_video_puller.hpp
index de75fdf..214e2df 100644
--- a/include/ast_video_puller.hpp
+++ b/include/ast_video_puller.hpp
@@ -1,7 +1,6 @@
 #pragma once
 
 #include <assert.h>
-//#include <video.h>
 #include <ast_video_types.hpp>
 #include <iostream>
 #include <vector>
@@ -78,11 +77,6 @@
 
     image_info.do_image_refresh = 1;  // full frame refresh
     image_info.qc_valid = 0;          // quick cursor disabled
-    image_info.parameter.features.w = 0;
-    image_info.parameter.features.h = 0;
-    image_info.parameter.features.chrom_tbl = 0;  // level
-    image_info.parameter.features.lumin_tbl = 0;
-    image_info.parameter.features.jpg_fmt = 1;
     image_info.parameter.features.buf =
         reinterpret_cast<unsigned char *>(raw.buffer.data());
     image_info.crypttype = -1;
diff --git a/include/ssl_key_handler.hpp b/include/ssl_key_handler.hpp
index 1c3e8f4..eef4d55 100644
--- a/include/ssl_key_handler.hpp
+++ b/include/ssl_key_handler.hpp
@@ -1,4 +1,5 @@
 #pragma once
+#ifdef CROW_ENABLE_SSL
 
 #include <openssl/bio.h>
 #include <openssl/dh.h>
@@ -191,7 +192,7 @@
   if (myecc) {
     EC_KEY_set_asn1_flag(myecc, OPENSSL_EC_NAMED_CURVE);
     EC_KEY_generate_key(myecc);
-    EVP_PKEY *pKey = EVP_PKEY_new();
+    pKey = EVP_PKEY_new();
     if (pKey) {
       if (EVP_PKEY_assign_EC_KEY(pKey, myecc)) {
         /* pKey owns pRSA from now */
@@ -199,11 +200,7 @@
           fprintf(stderr, "EC_check_key failed.\n");
         }
       }
-      EVP_PKEY_free(pKey);
-      pKey = NULL;
     }
-    EC_KEY_free(myecc);
-    myecc = NULL;
   }
   return pKey;
 }
@@ -314,4 +311,6 @@
   }
   return m_ssl_context;
 }
-}
\ No newline at end of file
+}
+
+#endif
\ No newline at end of file
diff --git a/include/web_kvm.hpp b/include/web_kvm.hpp
index 2512570..62be097 100644
--- a/include/web_kvm.hpp
+++ b/include/web_kvm.hpp
@@ -184,7 +184,7 @@
         if (meta.vnc_state == VncState::UNSTARTED) {
           meta.vnc_state = VncState::AWAITING_CLIENT_VERSION;
           conn.send_binary(rfb_3_8_version_string);
-        } else {
+        } else {  // SHould never happen
           conn.close();
         }
 
@@ -271,7 +271,6 @@
                     auto msg = reinterpret_cast<const frame_buffer_update_req*>(
                         data.data() + sizeof(client_to_server_msg_type));
 
-                    if (!msg->incremental) {
                       // Todo(ed) lifecycle of the video puller and decoder
                       // should be
                       // with the websocket, not recreated every time
@@ -313,7 +312,7 @@
                       auto serialized = serialize(buffer_update_msg);
 
                       conn.send_binary(serialized);
-                    }
+
                   }  // TODO(Ed) handle error
 
                 }
