diff --git a/libweave/examples/ubuntu/ssl_stream.cc b/libweave/examples/ubuntu/ssl_stream.cc
index fc2d36d..7395c5b 100644
--- a/libweave/examples/ubuntu/ssl_stream.cc
+++ b/libweave/examples/ubuntu/ssl_stream.cc
@@ -10,8 +10,17 @@
 namespace weave {
 namespace examples {
 
+namespace {
+int GetSSLError(const SSL* ssl, int ret) {
+  SSL_load_error_strings();
+  return SSL_get_error(ssl, ret);
+}
+}  // namespace
+
 SSLStream::SSLStream(provider::TaskRunner* task_runner)
-    : task_runner_{task_runner} {}
+    : task_runner_{task_runner} {
+  SSL_library_init();
+}
 
 SSLStream::~SSLStream() {
   CancelPendingOperations();
@@ -34,7 +43,7 @@
     return;
   }
 
-  int err = SSL_get_error(ssl_.get(), res);
+  int err = GetSSLError(ssl_.get(), res);
 
   if (err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE) {
     task_runner_->PostDelayedTask(
@@ -79,7 +88,7 @@
     return;
   }
 
-  int err = SSL_get_error(ssl_.get(), res);
+  int err = GetSSLError(ssl_.get(), res);
 
   if (err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE) {
     task_runner_->PostDelayedTask(
@@ -129,7 +138,7 @@
       return true;
     }
 
-    res = SSL_get_error(ssl_.get(), res);
+    res = GetSSLError(ssl_.get(), res);
 
     if (res != SSL_ERROR_WANT_READ || res != SSL_ERROR_WANT_WRITE) {
       return false;
diff --git a/libweave/examples/ubuntu/wifi_manager.cc b/libweave/examples/ubuntu/wifi_manager.cc
index be2953e..2df66af 100644
--- a/libweave/examples/ubuntu/wifi_manager.cc
+++ b/libweave/examples/ubuntu/wifi_manager.cc
@@ -42,9 +42,6 @@
 WifiImpl::WifiImpl(provider::TaskRunner* task_runner,
                          bool force_bootstrapping)
     : force_bootstrapping_{force_bootstrapping}, task_runner_{task_runner} {
-  SSL_load_error_strings();
-  SSL_library_init();
-
   StopAccessPoint();
 }
 WifiImpl::~WifiImpl() {
