diff --git a/programs/test/ssl_test.c b/programs/test/ssl_test.c
index 44ff7d8..ebf2be9 100644
--- a/programs/test/ssl_test.c
+++ b/programs/test/ssl_test.c
@@ -26,11 +26,11 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#include "xyssl/net.h"
-#include "xyssl/ssl.h"
-#include "xyssl/havege.h"
-#include "xyssl/timing.h"
-#include "xyssl/certs.h"
+#include "polarssl/net.h"
+#include "polarssl/ssl.h"
+#include "polarssl/havege.h"
+#include "polarssl/timing.h"
+#include "polarssl/certs.h"
 
 #define OPMODE_NONE             0
 #define OPMODE_CLIENT           1
@@ -281,14 +281,14 @@
                 offset_to_write += ret;
             }
 
-            if( ret == XYSSL_ERR_SSL_PEER_CLOSE_NOTIFY ||
-                ret == XYSSL_ERR_NET_CONN_RESET )
+            if( ret == POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY ||
+                ret == POLARSSL_ERR_NET_CONN_RESET )
             {
                 ret = 0;
                 goto exit;
             }
 
-            if( ret < 0 && ret != XYSSL_ERR_NET_TRY_AGAIN )
+            if( ret < 0 && ret != POLARSSL_ERR_NET_TRY_AGAIN )
             {
                 printf( "  ! ssl_write returned %d\n\n", ret );
                 break;
@@ -324,14 +324,14 @@
                 offset_to_read += ret;
             }
 
-            if( ret == XYSSL_ERR_SSL_PEER_CLOSE_NOTIFY ||
-                ret == XYSSL_ERR_NET_CONN_RESET )
+            if( ret == POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY ||
+                ret == POLARSSL_ERR_NET_CONN_RESET )
             {
                 ret = 0;
                 goto exit;
             }
 
-            if( ret < 0 && ret != XYSSL_ERR_NET_TRY_AGAIN )
+            if( ret < 0 && ret != POLARSSL_ERR_NET_TRY_AGAIN )
             {
                 printf( "  ! ssl_read returned %d\n\n", ret );
                 break;
