--- /dev/null
+diff -ruNp curl-7.19.4.orig/include/curl/curl.h curl-7.19.4/include/curl/curl.h
+--- curl-7.19.4.orig/include/curl/curl.h 2009-03-03 00:05:31.000000000 +0100
++++ curl-7.19.4/include/curl/curl.h 2009-03-10 14:49:47.017943954 +0100
+@@ -1510,7 +1510,7 @@ CURL_EXTERN void curl_free(void *p);
+ * DESCRIPTION
+ *
+ * curl_global_init() should be invoked exactly once for each application that
+- * uses libcurl
++ * uses libcurl and before any call of other libcurl function
+ */
+ CURL_EXTERN CURLcode curl_global_init(long flags);
+
+diff -ruNp curl-7.19.4.orig/src/main.c curl-7.19.4/src/main.c
+--- curl-7.19.4.orig/src/main.c 2009-02-17 10:10:21.000000000 +0100
++++ curl-7.19.4/src/main.c 2009-03-10 14:49:50.297971916 +0100
+@@ -3969,6 +3969,12 @@ operate(struct Configurable *config, int
+
+ memset(&heads, 0, sizeof(struct OutStruct));
+
++ /* initialize curl library - do not call any libcurl functions before */
++ if (main_init() != CURLE_OK) {
++ helpf(config->errors, "error initializing curl library\n");
++ return CURLE_FAILED_INIT;
++ }
++
+ #ifdef CURLDEBUG
+ /* this sends all memory debug messages to a logfile named memdump */
+ env = curlx_getenv("CURL_MEMDEBUG");
+@@ -4015,10 +4021,6 @@ operate(struct Configurable *config, int
+ #endif
+
+ /* inits */
+- if (main_init() != CURLE_OK) {
+- helpf(config->errors, "error initializing curl library\n");
+- return CURLE_FAILED_INIT;
+- }
+ config->postfieldsize = -1;
+ config->showerror=TRUE;
+ config->use_httpget=FALSE;