--- a/trunk/php-java-bridge/php_java.h
+++ b/trunk/php-java-bridge/php_java.h
@@ -12,6 +12,7 @@
 #include "zend_compile.h"
 #include "php_ini.h"
 #include "php_globals.h"
+#include "protocol.h"
 #ifdef ZTS
 #include "TSRM.h"
 #endif
@@ -39,20 +40,19 @@
 #endif
 #endif 
 
-#include "protocol.h"
 
-extern zend_module_entry java_module_entry;
-extern zend_class_entry *php_java_class_entry;
-extern zend_class_entry *php_java_class_class_entry;
-extern zend_class_entry *php_java_exception_class_entry;
-extern function_entry php_java_class_functions[];
+extern zend_module_entry EXT_GLOBAL(module_entry);
+extern zend_class_entry *EXT_GLOBAL(class_entry);
+extern zend_class_entry *EXT_GLOBAL(class_class_entry);
+extern zend_class_entry *EXT_GLOBAL(exception_class_entry);
+extern function_entry EXT_GLOBAL(class_functions[]);
 
 #ifdef ZEND_ENGINE_2
-extern zend_object_handlers php_java_handlers;
+extern zend_object_handlers EXT_GLOBAL(handlers);
 #endif
-extern const char * const java_bridge_version;
+extern const char * const EXT_GLOBAL(bridge_version);
 
-extern int java_ini_updated;
+extern int EXT_GLOBAL(ini_updated), EXT_GLOBAL (ini_last_updated);
 #define U_LOGFILE (1<<1)
 #define U_LOGLEVEL (1<<2)
 #define U_JAVA_HOME (1<<3)
@@ -64,17 +64,28 @@
 #define U_SERVLET (1<<9)
 
 
-#define phpext_java_ptr &java_module_entry
-
+#if EXTENSION == JAVA
+#define phpext_java_ptr &EXT_GLOBAL(module_entry)
 #ifdef PHP_WIN32
 #define PHP_JAVA_API __declspec(dllexport)
 #else
 #define PHP_JAVA_API
 #endif
+#elif EXTENSION == MONO
+#define phpext_mono_ptr &EXT_GLOBAL(module_entry)
+#ifdef PHP_WIN32
+#define PHP_MONO_API __declspec(dllexport)
+#else
+#define PHP_MONO_API
+#endif
+#else
+# error EXT must be mono or java.
+#endif
 
-PHP_MINIT_FUNCTION(java);
-PHP_MSHUTDOWN_FUNCTION(java);
-PHP_MINFO_FUNCTION(java);
+
+PHP_MINIT_FUNCTION(EXT);
+PHP_MSHUTDOWN_FUNCTION(EXT);
+PHP_MINFO_FUNCTION(EXT);
 
 struct cfg {
 #ifdef CFG_JAVA_SOCKET_INET
@@ -88,42 +99,40 @@
   char*hosts;
   char*classpath;	
   char*ld_library_path;
-  char*java;
-  char*java_home;
+  char*vm;
+  char*vm_home;
   char*logLevel;
   unsigned short logLevel_val;
   char*logFile;
   short can_fork;				/* 0 if user has hard-coded the socketname */
   char* servlet;				/* On or servlet context */
 };
-extern struct cfg *cfg;
+extern struct cfg *EXT_GLOBAL(cfg);
 
-ZEND_BEGIN_MODULE_GLOBALS(java)
+EXT_BEGIN_MODULE_GLOBALS(EXT)
   proxyenv *jenv;
   short is_closed; 				/* PR1176522: GC must not re-open the connection */
-ZEND_END_MODULE_GLOBALS(java)
+EXT_END_MODULE_GLOBALS(EXT)
 
 
 
 
 #ifdef ZTS
-# define JG(v) TSRMG(java_globals_id, zend_java_globals *, v)
+# define JG(v) EXT_TSRMG(EXT_GLOBAL(globals_id), EXT_GLOBAL_EX(zend_,, _globals) *, v)
 #else
-# define JG(v) (java_globals.v)
+# define JG(v) EXT_GLOBAL(globals).v
 #endif
 
+extern char* EXT_GLOBAL(get_server_string());
 
-extern char* java_get_server_string();
-
-extern proxyenv *java_try_connect_to_server(TSRMLS_D);
-extern proxyenv *java_connect_to_server(TSRMLS_D);
-extern proxyenv *java_connect_to_mono(TSRMLS_D);
-extern void java_start_server();
+extern proxyenv *EXT_GLOBAL(try_connect_to_server)(TSRMLS_D);
+extern proxyenv *EXT_GLOBAL(connect_to_server)(TSRMLS_D);
+extern void EXT_GLOBAL(start_server)();
 
 /* spec: M ono, J ava or I nit (lower-case m or j: no multicast) */
-extern char* java_test_server(int *socket, unsigned char spec);
+extern char* EXT_GLOBAL(test_server)(int *socket, unsigned char spec);
 
 /* returns the servlet context or null */
-extern char *get_servlet_context();
+extern char *EXT_GLOBAL(get_servlet_context)();
 
 #endif