diff --git NEWS NEWS
index 6e9c10d..0047613 100644
--- NEWS
+++ NEWS
@@ -50,3 +50,6 @@
   * Session factory automatically detects which binding to use
   * C wrapper API
   * Unit tests are now split between quick ones and the ones needing a CMIS server
+
+0.3.1
+  * Added support for proxy configuration
diff --git doc/cmis-client.xml doc/cmis-client.xml
index b7dce51..2d6cdea 100644
--- doc/cmis-client.xml
+++ doc/cmis-client.xml
@@ -213,6 +213,41 @@
 						</para>
           </listitem>
         </varlistentry>
+        <varlistentry>
+          <term>--proxy <replaceable class="parameter">url</replaceable></term>
+          <listitem>
+            <para>
+                Use <replaceable class="parameter">url</replaceable> as the HTTP proxy.
+                Setting this value will override the system proxy settings.
+						</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>--proxy-username <replaceable class="parameter">login</replaceable></term>
+          <listitem>
+            <para>
+							Use <replaceable class="parameter">login</replaceable> to authenticate on the HTTP proxy.
+						</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>--proxy-password <replaceable class="parameter">secret</replaceable></term>
+          <listitem>
+            <para>
+							Use <replaceable class="parameter">secret</replaceable> to authenticate on the HTTP proxy.
+						</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>--noproxy <replaceable class="parameter">list</replaceable></term>
+          <listitem>
+            <para>
+                Proxy settings won't apply to hostnames and domain names listed 
+                in <replaceable class="parameter">list</replaceable>.
+                This value is a coma separated list.
+						</para>
+          </listitem>
+        </varlistentry>
       </variablelist>
     </refsect2>
     <refsect2>
diff --git src/cmis-client.cxx src/cmis-client.cxx
index 587a05b..432e140 100644
--- src/cmis-client.cxx
+++ src/cmis-client.cxx
@@ -121,11 +121,32 @@ libcmis::Session* CmisClient::getSession( ) throw ( CommandException, libcmis::E
             password = m_vm["password"].as< string >();
     }
 
+    // Look for proxy settings
+    string proxyUrl;
+    string proxyUser;
+    string proxyPass;
+    string noproxy;
+    if ( m_vm.count( "proxy" ) > 0 )
+    {
+        proxyUrl = m_vm["proxy"].as< string >();
+
+        if ( m_vm.count( "proxy-user" ) > 0 )
+            proxyUser = m_vm["proxy-user"].as< string >();
+        
+        if ( m_vm.count( "proxy-password" ) > 0 )
+            proxyPass = m_vm["proxy-password"].as< string >();
+
+        if ( m_vm.count( "noproxy" ) > 0 )
+            noproxy = m_vm["noproxy"].as< string >();
+
+        libcmis::SessionFactory::setProxySettings( proxyUrl, noproxy, proxyUser, proxyPass );
+    }
 
     bool verbose = m_vm.count( "verbose" ) > 0;
 
     string repoId;
-    list< libcmis::RepositoryPtr > repositories = libcmis::SessionFactory:: getRepositories( url, username, password, verbose );
+    list< libcmis::RepositoryPtr > repositories = libcmis::SessionFactory::getRepositories(
+            url, username, password, verbose );
     if ( repositories.size( ) == 1 )
         repoId = repositories.front( )->getId( );
     else
@@ -169,10 +190,31 @@ void CmisClient::execute( ) throw ( exception )
                     password = m_vm["password"].as< string >();
             }
 
+            // Look for proxy settings
+            string proxyUrl;
+            string proxyUser;
+            string proxyPass;
+            string noproxy;
+            if ( m_vm.count( "proxy" ) > 0 )
+            {
+                proxyUrl = m_vm["proxy"].as< string >();
+
+                if ( m_vm.count( "proxy-user" ) > 0 )
+                    proxyUser = m_vm["proxy-user"].as< string >();
+                
+                if ( m_vm.count( "proxy-password" ) > 0 )
+                    proxyPass = m_vm["proxy-password"].as< string >();
+
+                if ( m_vm.count( "noproxy" ) > 0 )
+                    noproxy = m_vm["noproxy"].as< string >();
+
+                libcmis::SessionFactory::setProxySettings( proxyUrl, noproxy, proxyUser, proxyPass );
+            }
 
             bool verbose = m_vm.count( "verbose" ) > 0;
 
-            list< libcmis::RepositoryPtr > repos = libcmis::SessionFactory::getRepositories( url, username, password, verbose );
+            list< libcmis::RepositoryPtr > repos = libcmis::SessionFactory::getRepositories(
+                    url, username, password, verbose );
         
             cout << "Repositories: name (id)" << endl;
             for ( list< libcmis::RepositoryPtr >::iterator it = repos.begin(); it != repos.end(); it++ )
@@ -828,6 +870,11 @@ options_description CmisClient::getOptionsDescription( )
         ( "repository,r", value< string >(), "Name of the repository to use" )
         ( "username,u", value< string >(), "Username used to authenticate to the repository" )
         ( "password,p", value< string >(), "Password used to authenticate to the repository" )
+        ( "proxy", value< string >(), "HTTP proxy url to override the system settings" )
+        ( "noproxy", value< string >(), "Coma separated list if host and domain names not going"
+                                        "through the proxy" )
+        ( "proxy-username", value< string >(), "Username to authenticate on the proxy" )
+        ( "proxy-password", value< string >(), "Password to authenticate on the proxy" )
     ;
 
     options_description setcontentOpts( "modification operations options" );
diff --git src/libcmis-c/session-factory.cxx src/libcmis-c/session-factory.cxx
index a171c82..7ebb278 100644
--- src/libcmis-c/session-factory.cxx
+++ src/libcmis-c/session-factory.cxx
@@ -37,6 +37,33 @@
 
 using namespace std;
 
+void libcmis_setProxySettings( char* proxy, char* noProxy,
+        char* proxyUser, char* proxyPass )
+{
+    libcmis::SessionFactory::setProxySettings( string( proxy ), string( noProxy ),
+            string( proxyUser ), string( proxyPass ) );
+}
+
+const char* libcmis_getProxy( )
+{
+    return libcmis::SessionFactory::getProxy( ).c_str();
+}
+
+const char* libcmis_getNoProxy( )
+{
+    return libcmis::SessionFactory::getNoProxy( ).c_str();
+}
+
+const char* libcmis_getProxyUser( )
+{
+    return libcmis::SessionFactory::getProxyUser( ).c_str();
+}
+
+const char* libcmis_getProxyPass( )
+{
+    return libcmis::SessionFactory::getProxyPass( ).c_str();
+}
+
 libcmis_SessionPtr libcmis_createSession(
         char* bindingUrl,
         char* repositoryId,
@@ -49,7 +76,8 @@ libcmis_SessionPtr libcmis_createSession(
 
     try
     {
-        libcmis::Session* handle = libcmis::SessionFactory::createSession( bindingUrl, username, password, repositoryId, verbose );
+        libcmis::Session* handle = libcmis::SessionFactory::createSession( bindingUrl, username,
+                password, repositoryId, verbose );
         session = new libcmis_session( );
         session->handle = handle;
     }
diff --git src/libcmis-c/session-factory.h src/libcmis-c/session-factory.h
index ad95acc..d28059e 100644
--- src/libcmis-c/session-factory.h
+++ src/libcmis-c/session-factory.h
@@ -34,6 +34,17 @@ extern "C" {
 
 #include "types.h"
 
+void libcmis_setProxySettings(
+        char* proxy,
+        char* noProxy,
+        char* proxyUser,
+        char* proxyPass );
+
+const char* libcmis_getProxy( );
+const char* libcmis_getNoProxy( );
+const char* libcmis_getProxyUser( );
+const char* libcmis_getProxyPass( );
+
 libcmis_SessionPtr libcmis_createSession(
         char* bindingUrl,
         char* repositoryId,
diff --git src/libcmis/atom-session.cxx src/libcmis/atom-session.cxx
index 1716755..1f8ac2d 100644
--- src/libcmis/atom-session.cxx
+++ src/libcmis/atom-session.cxx
@@ -39,7 +39,7 @@
 
 using namespace std;
 
-AtomPubSession::AtomPubSession( string atomPubUrl, string repositoryId, 
+AtomPubSession::AtomPubSession( string atomPubUrl, string repositoryId,
         string username, string password, bool verbose ) throw ( libcmis::Exception ) :
     BaseSession( atomPubUrl, repositoryId, username, password, verbose ),
     m_repository( )
@@ -139,7 +139,8 @@ void AtomPubSession::initialize( ) throw ( libcmis::Exception )
 
 }
 
-list< libcmis::RepositoryPtr > AtomPubSession::getRepositories( string url, string username, string password, bool verbose ) throw ( libcmis::Exception )
+list< libcmis::RepositoryPtr > AtomPubSession::getRepositories( string url, string username,
+        string password, bool verbose ) throw ( libcmis::Exception )
 {
     AtomPubSession session( url, string(), username, password, verbose );
     return session.m_repositories;
diff --git src/libcmis/atom-session.hxx src/libcmis/atom-session.hxx
index 568b9b0..29eb359 100644
--- src/libcmis/atom-session.hxx
+++ src/libcmis/atom-session.hxx
@@ -39,7 +39,7 @@ class AtomPubSession : public BaseSession
     public:
         AtomPubSession( std::string sAtomPubUrl, std::string repositoryId,
                         std::string username, std::string password,
-                        bool verbose ) throw ( libcmis::Exception );
+                        bool verbose =false ) throw ( libcmis::Exception );
         AtomPubSession( const AtomPubSession& copy );
         ~AtomPubSession( );
 
diff --git src/libcmis/base-session.cxx src/libcmis/base-session.cxx
index adc030e..b007a9d 100644
--- src/libcmis/base-session.cxx
+++ src/libcmis/base-session.cxx
@@ -33,6 +33,7 @@
 #include <libxml/xpath.h>
 
 #include "base-session.hxx"
+#include "session-factory.hxx"
 #include "xml-utils.hxx"
 
 using namespace std;
@@ -105,11 +106,12 @@ namespace
     }
 }
 
-BaseSession::BaseSession( string atomPubUrl, string repositoryId, 
-        string username, string password, bool verbose ) throw ( libcmis::Exception ) :
+BaseSession::BaseSession( string atomPubUrl, string repositoryId, string username,
+        string password, bool verbose ) throw ( libcmis::Exception ) :
     Session( ),
     m_authProvider( ),
     m_curlHandle( NULL ),
+    m_no100Continue( false ),
     m_bindingUrl( atomPubUrl ),
     m_repositoryId( repositoryId ),
     m_username( username ),
@@ -127,6 +129,7 @@ BaseSession::BaseSession( const BaseSession& copy ) :
     Session( ),
     m_authProvider( copy.m_authProvider ),
     m_curlHandle( NULL ),
+    m_no100Continue( copy.m_no100Continue ),
     m_bindingUrl( copy.m_bindingUrl ),
     m_repositoryId( copy.m_repositoryId ),
     m_username( copy.m_username ),
@@ -141,11 +144,11 @@ BaseSession::BaseSession( const BaseSession& copy ) :
     m_curlHandle = curl_easy_init( );
 }
 
-
 BaseSession& BaseSession::operator=( const BaseSession& copy )
 {
     m_authProvider = copy.m_authProvider;
     m_curlHandle = NULL;
+    m_no100Continue = copy.m_no100Continue;
     m_bindingUrl = copy.m_bindingUrl;
     m_repositoryId = copy.m_repositoryId;
     m_username = copy.m_username;
@@ -186,7 +189,7 @@ string BaseSession::createUrl( const string& pattern, map< string, string > vari
         if ( pos != string::npos )
         {
             // Escape the URL by chunks
-#if LIBCURL_VERSION_VALUE >= 0x071504
+#if LIBCURL_VERSION_VALUE >= 0x070F04
             char* escaped = curl_easy_escape( m_curlHandle, value.c_str(), value.length() );
 #else
             char* escaped = curl_escape( value.c_str(), value.length() );
@@ -215,6 +218,9 @@ string BaseSession::createUrl( const string& pattern, map< string, string > vari
 
 libcmis::HttpResponsePtr BaseSession::httpGetRequest( string url ) throw ( CurlException )
 {
+    // Reset the handle for the request
+    curl_easy_reset( m_curlHandle );
+
     libcmis::HttpResponsePtr response( new libcmis::HttpResponse( ) );
 
     curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, lcl_bufferData );
@@ -244,6 +250,9 @@ libcmis::HttpResponsePtr BaseSession::httpGetRequest( string url ) throw ( CurlE
 
 libcmis::HttpResponsePtr BaseSession::httpPutRequest( string url, istream& is, vector< string > headers ) throw ( CurlException )
 {
+    // Reset the handle for the request
+    curl_easy_reset( m_curlHandle );
+
     libcmis::HttpResponsePtr response( new libcmis::HttpResponse( ) );
 
     curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, lcl_bufferData );
@@ -266,12 +275,32 @@ libcmis::HttpResponsePtr BaseSession::httpPutRequest( string url, istream& is, v
     struct curl_slist *headers_slist = NULL;
     for ( vector< string >::iterator it = headers.begin( ); it != headers.end( ); ++it )
         headers_slist = curl_slist_append( headers_slist, it->c_str( ) );
+
+    // If we know for sure that 100-Continue won't be accepted,
+    // don't even try with it to save one HTTP request.
+    if ( m_no100Continue )
+        headers_slist = curl_slist_append( headers_slist, "Expect:" );
     curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
 
     try
     {
         httpRunRequest( url );
         response->getData( )->finish();
+
+        /** If we had a HTTP 417 response, this is likely to be due to some 
+            HTTP 1.0 proxy / server not accepting the "Expect: 100-continue"
+            header. Try to disable this header and try again.
+          */
+        if ( getHttpStatus() == 417 )
+        {
+            headers_slist = curl_slist_append( headers_slist, "Expect:" );
+            curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
+            httpRunRequest( url );
+            response->getData( )->finish();
+
+            // Remember that we don't want 100-Continue for the future requests
+            m_no100Continue = true;
+        }
     }
     catch ( CurlException& e )
     {
@@ -286,6 +315,9 @@ libcmis::HttpResponsePtr BaseSession::httpPutRequest( string url, istream& is, v
 
 libcmis::HttpResponsePtr BaseSession::httpPostRequest( string url, istringstream& is, string contentType ) throw ( CurlException )
 {
+    // Reset the handle for the request
+    curl_easy_reset( m_curlHandle );
+
     libcmis::HttpResponsePtr response( new libcmis::HttpResponse( ) );
 
     curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, lcl_bufferData );
@@ -308,12 +340,32 @@ libcmis::HttpResponsePtr BaseSession::httpPostRequest( string url, istringstream
     struct curl_slist *headers_slist = NULL;
     string contentTypeHeader = string( "Content-Type:" ) + contentType;
     headers_slist = curl_slist_append( headers_slist, contentTypeHeader.c_str( ) );
+
+    // If we know for sure that 100-Continue won't be accepted,
+    // don't even try with it to save one HTTP request.
+    if ( m_no100Continue )
+        headers_slist = curl_slist_append( headers_slist, "Expect:" );
     curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
 
     try
     {
         httpRunRequest( url );
         response->getData( )->finish();
+
+        /** If we had a HTTP 417 response, this is likely to be due to some 
+            HTTP 1.0 proxy / server not accepting the "Expect: 100-continue"
+            header. Try to disable this header and try again.
+          */
+        if ( getHttpStatus() == 417 )
+        {
+            headers_slist = curl_slist_append( headers_slist, "Expect:" );
+            curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
+            httpRunRequest( url );
+            response->getData( )->finish();
+
+            // Remember that we don't want 100-Continue for the future requests
+            m_no100Continue = true;
+        }
     }
     catch ( const CurlException& e )
     {
@@ -328,6 +380,9 @@ libcmis::HttpResponsePtr BaseSession::httpPostRequest( string url, istringstream
 
 void BaseSession::httpDeleteRequest( string url ) throw ( CurlException )
 {
+    // Reset the handle for the request
+    curl_easy_reset( m_curlHandle );
+
     curl_easy_setopt( m_curlHandle, CURLOPT_CUSTOMREQUEST, "DELETE" );
     httpRunRequest( url );
 }
@@ -351,7 +406,7 @@ void BaseSession::httpRunRequest( string url ) throw ( CurlException )
     {
         curl_easy_setopt( m_curlHandle, CURLOPT_HTTPAUTH, CURLAUTH_ANY );
 
-#if LIBCURL_VERSION_VALUE >= 0x071901
+#if LIBCURL_VERSION_VALUE >= 0x071301
         curl_easy_setopt( m_curlHandle, CURLOPT_USERNAME, m_username.c_str() );
         curl_easy_setopt( m_curlHandle, CURLOPT_PASSWORD, m_password.c_str() );
 #else
@@ -360,6 +415,28 @@ void BaseSession::httpRunRequest( string url ) throw ( CurlException )
 #endif
     }
 
+    // Set the proxy configuration if any
+    if ( !libcmis::SessionFactory::getProxy( ).empty() )
+    {
+        curl_easy_setopt( m_curlHandle, CURLOPT_PROXY, libcmis::SessionFactory::getProxy( ).c_str() );
+#if LIBCURL_VERSION_VALUE >= 0x071304
+        curl_easy_setopt( m_curlHandle, CURLOPT_NOPROXY, libcmis::SessionFactory::getNoProxy( ).c_str() );
+#endif
+        const string& proxyUser = libcmis::SessionFactory::getProxyUser( );
+        const string& proxyPass = libcmis::SessionFactory::getProxyPass( );
+        if ( !proxyUser.empty( ) && !proxyPass.empty( ) )
+        {
+            curl_easy_setopt( m_curlHandle, CURLOPT_PROXYAUTH, CURLAUTH_ANY ); 
+#if LIBCURL_VERSION_VALUE >= 0X071301
+            curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERNAME, proxyUser.c_str( ) );
+            curl_easy_setopt( m_curlHandle, CURLOPT_PROXYPASSWORD, proxyPass.c_str( ) );
+#else
+            string userpwd = proxyUser + ":" + proxyPass;
+            curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERPWD, userpwd.c_str( ) );
+#endif
+        }
+    }
+
     // Get some feedback when something wrong happens
     char errBuff[CURL_ERROR_SIZE];
     curl_easy_setopt( m_curlHandle, CURLOPT_ERRORBUFFER, errBuff );
@@ -373,9 +450,6 @@ void BaseSession::httpRunRequest( string url ) throw ( CurlException )
 
     // Perform the query
     CURLcode errCode = curl_easy_perform( m_curlHandle );
-    
-    // Reset the handle for the next request
-    curl_easy_reset( m_curlHandle );
 
     bool isHttpError = errCode == CURLE_HTTP_RETURNED_ERROR;
     if ( CURLE_OK != errCode && !( m_noHttpErrors && isHttpError ) )
diff --git src/libcmis/base-session.hxx src/libcmis/base-session.hxx
index fb95ba7..0b90c1f 100644
--- src/libcmis/base-session.hxx
+++ src/libcmis/base-session.hxx
@@ -94,6 +94,7 @@ class BaseSession : public libcmis::Session
         libcmis::AuthProviderPtr m_authProvider;
 
         CURL* m_curlHandle;
+        bool  m_no100Continue;
 
     protected:
         std::string m_bindingUrl;
@@ -110,7 +111,7 @@ class BaseSession : public libcmis::Session
     public:
         BaseSession( std::string sBindingUrl, std::string repository,
                         std::string username, std::string password,
-                        bool verbose ) throw ( libcmis::Exception );
+                        bool verbose = false ) throw ( libcmis::Exception );
         BaseSession( const BaseSession& copy );
         ~BaseSession( );
 
@@ -137,8 +138,6 @@ class BaseSession : public libcmis::Session
         libcmis::HttpResponsePtr httpPostRequest( std::string url, std::istringstream& is, std::string contentType ) throw ( CurlException );
         void httpDeleteRequest( std::string url ) throw ( CurlException );
 
-        void httpRunRequest( std::string url ) throw ( CurlException );
-
         long getHttpStatus( );
 
         // Session methods
@@ -148,6 +147,8 @@ class BaseSession : public libcmis::Session
         virtual libcmis::FolderPtr getFolder( std::string id ) throw ( libcmis::Exception );
 
         virtual void setAuthenticationProvider( libcmis::AuthProviderPtr provider ) { m_authProvider = provider; }
+    private:
+        void httpRunRequest( std::string url ) throw ( CurlException );
 };
 
 #endif
diff --git src/libcmis/session-factory.cxx src/libcmis/session-factory.cxx
index d7d886b..afe6943 100644
--- src/libcmis/session-factory.cxx
+++ src/libcmis/session-factory.cxx
@@ -33,8 +33,23 @@ using namespace std;
 
 namespace libcmis
 {
+    string SessionFactory::s_proxy;
+    string SessionFactory::s_noProxy;
+    string SessionFactory::s_proxyUser;
+    string SessionFactory::s_proxyPass;
+
+    void SessionFactory::setProxySettings( string proxy, string noProxy,
+            string proxyUser, string proxyPass )
+    {
+        SessionFactory::s_proxy = proxy;
+        SessionFactory::s_noProxy = noProxy;
+        SessionFactory::s_proxyUser = proxyUser;
+        SessionFactory::s_proxyPass = proxyPass;
+    }
+
     Session* SessionFactory::createSession( string bindingUrl, string username,
-            string password, string repository, bool verbose ) throw ( Exception )
+            string password, string repository,
+            bool verbose ) throw ( Exception )
     {
         Session* session = NULL;
         
@@ -68,8 +83,8 @@ namespace libcmis
         return session;
     }
 
-    list< RepositoryPtr > SessionFactory::getRepositories( string bindingUrl, string username,
-            string password, bool verbose ) throw ( Exception )
+    list< RepositoryPtr > SessionFactory::getRepositories( string bindingUrl,
+            string username, string password, bool verbose ) throw ( Exception )
     {
         list< RepositoryPtr > repos;
 
diff --git src/libcmis/session-factory.hxx src/libcmis/session-factory.hxx
index 677c2ab..598497f 100644
--- src/libcmis/session-factory.hxx
+++ src/libcmis/session-factory.hxx
@@ -40,8 +40,24 @@ namespace libcmis
 {
     class SessionFactory
     {
+        private:
+            static std::string s_proxy;
+            static std::string s_noProxy;
+            static std::string s_proxyUser;
+            static std::string s_proxyPass;
+
         public:
 
+            static void setProxySettings( std::string proxy,
+                    std::string noProxy,
+                    std::string proxyUser,
+                    std::string proxyPass );
+
+            static const std::string& getProxy() { return s_proxy; }
+            static const std::string& getNoProxy() { return s_noProxy; }
+            static const std::string& getProxyUser() { return s_proxyUser; }
+            static const std::string& getProxyPass() { return s_proxyPass; }
+
             /** Create a session from the given parameters. The binding type is automatically
                 detected based on the provided URL.
 
diff --git src/libcmis/test-atom.cxx src/libcmis/test-atom.cxx
index 4ee64ea..624078d 100644
--- src/libcmis/test-atom.cxx
+++ src/libcmis/test-atom.cxx
@@ -211,7 +211,7 @@ class TestAuthProvider : public libcmis::AuthProvider
 
 void AtomTest::authCallbackTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, string( ), false);
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, string( ) );
 
     // Test cancelled authentication
     {
@@ -239,7 +239,7 @@ void AtomTest::authCallbackTest( )
 
 void AtomTest::getUnexistantTypeTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     
     try
     {
@@ -254,7 +254,7 @@ void AtomTest::getUnexistantTypeTest( )
 
 void AtomTest::getNormalTypeTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     
     libcmis::ObjectTypePtr type = session.getType( TEST_TYPE_ID );
 
@@ -265,7 +265,7 @@ void AtomTest::getNormalTypeTest( )
 
 void AtomTest::getTypeChildrenTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     
     libcmis::ObjectTypePtr type = session.getType( CHILDREN_TEST_TYPE_ID );
     vector< libcmis::ObjectTypePtr > children = type->getChildren( );
@@ -275,7 +275,7 @@ void AtomTest::getTypeChildrenTest( )
 
 void AtomTest::getUnexistantFolderTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
 
     try
     {
@@ -290,7 +290,7 @@ void AtomTest::getUnexistantFolderTest( )
 
 void AtomTest::getUnexistantObjectTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     
     try
     {
@@ -305,7 +305,7 @@ void AtomTest::getUnexistantObjectTest( )
 
 void AtomTest::getFolderFromOtherNodeTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr folder = session.getFolder( TEST_DOCUMENT_ID );
 
     CPPUNIT_ASSERT_MESSAGE( "Nothing should be returned: not a folder",
@@ -314,7 +314,7 @@ void AtomTest::getFolderFromOtherNodeTest( )
 
 void AtomTest::getFolderCreationFromUrlTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr folder = session.getFolder( TEST_FOLDER_ID );
 
     AtomFolder* atomFolder = dynamic_cast< AtomFolder* >( folder.get( ) );
@@ -336,7 +336,7 @@ void AtomTest::getFolderCreationFromUrlTest( )
 
 void AtomTest::getDocumentCreationFromUrlTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
 
     AtomDocument* atomDocument = dynamic_cast< AtomDocument* >( object.get( ) );
@@ -359,7 +359,7 @@ void AtomTest::getDocumentCreationFromUrlTest( )
 
 void AtomTest::getByPathValidTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     try
     {
         libcmis::ObjectPtr object = session.getObjectByPath( TEST_PATH_VALID );
@@ -376,7 +376,7 @@ void AtomTest::getByPathValidTest( )
 
 void AtomTest::getByPathInvalidTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     try
     {
         libcmis::ObjectPtr object = session.getObjectByPath( TEST_PATH_INVALID );
@@ -391,7 +391,7 @@ void AtomTest::getByPathInvalidTest( )
         
 void AtomTest::getAllowableActionsTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr folder = session.getRootFolder( );
 
     boost::shared_ptr< libcmis::AllowableActions > toCheck = folder->getAllowableActions( );
@@ -405,7 +405,7 @@ void AtomTest::getAllowableActionsTest( )
 
 void AtomTest::getChildrenTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr folder = session.getRootFolder( );
 
     vector< libcmis::ObjectPtr > children = folder->getChildren( );
@@ -429,7 +429,7 @@ void AtomTest::getChildrenTest( )
 
 void AtomTest::getObjectParentsTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
     
@@ -445,7 +445,7 @@ void AtomTest::getObjectParentsTest( )
 
 void AtomTest::getContentStreamTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
     
@@ -467,7 +467,7 @@ void AtomTest::getContentStreamTest( )
 
 void AtomTest::setContentStreamTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
     
@@ -503,7 +503,7 @@ void AtomTest::setContentStreamTest( )
 
 void AtomTest::updatePropertiesTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
 
     // Values for the test
     libcmis::ObjectPtr object = session.getObject( "114" );
@@ -530,7 +530,7 @@ void AtomTest::updatePropertiesTest( )
 
 void AtomTest::createFolderTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
 
     // Prepare the properties for the new object, object type is cmis:folder
@@ -564,7 +564,7 @@ void AtomTest::createFolderTest( )
 
 void AtomTest::createFolderBadTypeTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
 
     // Prepare the properties for the new object, object type is cmis:document to trigger the exception
@@ -603,7 +603,7 @@ void AtomTest::createFolderBadTypeTest( )
 
 void AtomTest::createDocumentTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
 
     // Prepare the properties for the new object, object type is cmis:folder
@@ -647,7 +647,7 @@ void AtomTest::createDocumentTest( )
 
 void AtomTest::deleteDocumentTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
 
     string id( "130" );
     libcmis::ObjectPtr object = session.getObject( id );
@@ -669,7 +669,7 @@ void AtomTest::deleteDocumentTest( )
 
 void AtomTest::deleteTreeTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
 
     string id( "117" );
     libcmis::ObjectPtr object = session.getObject( id );
@@ -691,7 +691,7 @@ void AtomTest::deleteTreeTest( )
 
 void AtomTest::checkOutTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
 
     // First create a document of type VersionableType
     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkOutTest" );
@@ -709,7 +709,7 @@ void AtomTest::checkOutTest( )
 
 void AtomTest::cancelCheckOutTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
 
     // First create a versionable document and check it out
     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "cancelCheckOutTest" );
@@ -734,7 +734,7 @@ void AtomTest::cancelCheckOutTest( )
 
 void AtomTest::checkInTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
 
     // First create a versionable document and check it out
     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkInTest" );
@@ -770,7 +770,7 @@ void AtomTest::checkInTest( )
 
 void AtomTest::getAllVersionsTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
 
     // First create a versionable document and check it out
     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "getAllVersionsTest" );
@@ -795,7 +795,7 @@ void AtomTest::getAllVersionsTest( )
 
 void AtomTest::moveTest( )
 {
-    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
     
     string id( "135" );
     libcmis::ObjectPtr object = session.getObject( id );
diff --git src/libcmis/test-ws.cxx src/libcmis/test-ws.cxx
index 1b5dfee..ad564bc 100644
--- src/libcmis/test-ws.cxx
+++ src/libcmis/test-ws.cxx
@@ -136,19 +136,19 @@ void WSTest::getRepositoriesTest()
 
 void WSTest::sessionCreationTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD );
     CPPUNIT_ASSERT_MESSAGE( "No RepositoryService URL", !session.getServiceUrl( "RepositoryService" ).empty( ) );
 }
 
 void WSTest::getRepositoryTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     CPPUNIT_ASSERT_EQUAL_MESSAGE( "Repository info badly retrieved", string( "100" ), session.getRepository()->getRootId( ) );
 }
 
 void WSTest::getRepositoryBadTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD );
     try
     {
         session.getRepositoryService( ).getRepositoryInfo( "bad" );
@@ -164,7 +164,7 @@ void WSTest::getRepositoryBadTest( )
 
 void WSTest::getTypeDefinitionTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     string id( "ComplexType" ); 
     libcmis::ObjectTypePtr actual = session.getType( id );
 
@@ -175,7 +175,7 @@ void WSTest::getTypeDefinitionTest( )
 
 void WSTest::getTypeDefinitionErrorTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     
     string id( "bad_type" );
     try
@@ -192,7 +192,7 @@ void WSTest::getTypeDefinitionErrorTest( )
 
 void WSTest::getTypeChildrenTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::ObjectTypePtr actual = session.getType( "cmis:document" );
 
     vector< libcmis::ObjectTypePtr > children = actual->getChildren( );
@@ -202,7 +202,7 @@ void WSTest::getTypeChildrenTest( )
 
 void WSTest::getObjectTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     string id( "101" ); 
     libcmis::ObjectPtr actual = session.getObject( id );
 
@@ -217,7 +217,7 @@ void WSTest::getObjectTest( )
 
 void WSTest::getObjectDocumentTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     string id( "114" ); 
     libcmis::ObjectPtr actual = session.getObject( id );
 
@@ -232,7 +232,7 @@ void WSTest::getObjectDocumentTest( )
 
 void WSTest::getObjectParentsTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::ObjectPtr object = session.getObject( "116" );
     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
     
@@ -248,7 +248,7 @@ void WSTest::getObjectParentsTest( )
 
 void WSTest::getChildrenTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr folder = session.getRootFolder( );
 
     vector< libcmis::ObjectPtr > children = folder->getChildren( );
@@ -270,7 +270,7 @@ void WSTest::getChildrenTest( )
 
 void WSTest::getByPathValidTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     try
     {
         libcmis::ObjectPtr object = session.getObjectByPath( "/My_Folder-0-0/My_Document-1-2" );
@@ -287,7 +287,7 @@ void WSTest::getByPathValidTest( )
 
 void WSTest::getByPathInvalidTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     try
     {
         libcmis::ObjectPtr object = session.getObjectByPath( "/some/dummy/path" );
@@ -302,7 +302,7 @@ void WSTest::getByPathInvalidTest( )
 
 void WSTest::updatePropertiesTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     
     // Values for the test
     libcmis::ObjectPtr object = session.getObject( "114" );
@@ -329,7 +329,7 @@ void WSTest::updatePropertiesTest( )
 
 void WSTest::createFolderTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
 
     // Prepare the properties for the new object, object type is cmis:folder
@@ -363,7 +363,7 @@ void WSTest::createFolderTest( )
 
 void WSTest::createFolderBadTypeTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
 
     // Prepare the properties for the new object, object type is cmis:document to trigger the exception
@@ -401,7 +401,7 @@ void WSTest::createFolderBadTypeTest( )
 
 void WSTest::createDocumentTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
 
     // Prepare the properties for the new object, object type is cmis:folder
@@ -444,7 +444,7 @@ void WSTest::createDocumentTest( )
 
 void WSTest::deleteObjectTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
 
     // Get the object to remove
     string id( "130" );
@@ -467,7 +467,7 @@ void WSTest::deleteObjectTest( )
 
 void WSTest::deleteTreeTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
 
     string id( "117" );
     libcmis::ObjectPtr object = session.getObject( id );
@@ -489,7 +489,7 @@ void WSTest::deleteTreeTest( )
 
 void WSTest::moveTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     
     string id( "135" );
     libcmis::ObjectPtr object = session.getObject( id );
@@ -508,7 +508,7 @@ void WSTest::moveTest( )
 
 void WSTest::getContentStreamTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::ObjectPtr object = session.getObject( "116" );
     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
     
@@ -532,7 +532,7 @@ void WSTest::getContentStreamTest( )
 
 void WSTest::setContentStreamTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
     libcmis::ObjectPtr object = session.getObject( "116" );
     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
     
@@ -570,7 +570,7 @@ void WSTest::setContentStreamTest( )
 
 void WSTest::checkOutTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
 
     // First create a document of type VersionableType
     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkOutTest" );
@@ -588,7 +588,7 @@ void WSTest::checkOutTest( )
 
 void WSTest::cancelCheckOutTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
 
     // First create a versionable document and check it out
     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "cancelCheckOutTest" );
@@ -613,7 +613,7 @@ void WSTest::cancelCheckOutTest( )
 
 void WSTest::checkInTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
 
     // First create a versionable document and check it out
     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkInTest" );
@@ -649,7 +649,7 @@ void WSTest::checkInTest( )
 
 void WSTest::getAllVersionsTest( )
 {
-    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
 
     // First create a versionable document and check it out
     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "getAllVersionsTest" );
diff --git src/libcmis/ws-relatedmultipart.cxx src/libcmis/ws-relatedmultipart.cxx
index 37f133a..ef91b4d 100644
--- src/libcmis/ws-relatedmultipart.cxx
+++ src/libcmis/ws-relatedmultipart.cxx
@@ -299,7 +299,7 @@ boost::shared_ptr< istream > getStreamFromNode( xmlNodePtr node, RelatedMultipar
             {
                 id = href.substr( 4 );
                 // URL-decode the id
-#if LIBCURL_VERSION_VALUE >= 0x071504
+#if LIBCURL_VERSION_VALUE >= 0x070F04
                 char* escaped = curl_easy_unescape( NULL, id.c_str(), id.length(), NULL );
 #else
                 char* escaped = curl_unescape( id.c_str(), id.length() );
diff --git src/libcmis/ws-session.cxx src/libcmis/ws-session.cxx
index b906a5a..f551109 100644
--- src/libcmis/ws-session.cxx
+++ src/libcmis/ws-session.cxx
@@ -39,8 +39,8 @@
 
 using namespace std;
 
-WSSession::WSSession( string bindingUrl, string repositoryId, 
-        string username, string password, bool verbose ) throw ( libcmis::Exception ) :
+WSSession::WSSession( string bindingUrl, string repositoryId, string username,
+        string password, bool verbose ) throw ( libcmis::Exception ) :
     BaseSession( bindingUrl, repositoryId, username, password, verbose ),
     m_servicesUrls( ),
     m_navigationService( NULL ),
@@ -336,7 +336,8 @@ VersioningService& WSSession::getVersioningService( )
     return *m_versioningService;
 }
 
-list< libcmis::RepositoryPtr > WSSession::getRepositories( string url, string username, string password, bool verbose ) throw ( libcmis::Exception )
+list< libcmis::RepositoryPtr > WSSession::getRepositories( string url, string username,
+        string password, bool verbose ) throw ( libcmis::Exception )
 {
     WSSession session( url, string(), username, password, verbose );
     return session.m_repositories;
diff --git src/libcmis/ws-session.hxx src/libcmis/ws-session.hxx
index 952e914..e8b806a 100644
--- src/libcmis/ws-session.hxx
+++ src/libcmis/ws-session.hxx
@@ -52,7 +52,7 @@ class WSSession : public BaseSession, public SoapSession
     public:
         WSSession( std::string bindingUrl, std::string repositoryId,
                    std::string username, std::string password,
-                   bool verbose ) throw ( libcmis::Exception );
+                   bool verbose = false ) throw ( libcmis::Exception );
         WSSession( const WSSession& copy );
         ~WSSession( );