diff --git a/arch_011_udd/ump_frontend.c b/arch_011_udd/ump_frontend.c
index 5396450..8c93332 100644
--- a/arch_011_udd/ump_frontend.c
+++ b/arch_011_udd/ump_frontend.c
@@ -27,17 +27,17 @@
 #include <ump/ump_debug.h>
 #include <ump/ump_osu.h>
 
-ump_result ump_open(void)
+UMP_API_EXPORT ump_result ump_open(void)
 {
 	return ump_arch_open();
 }
 
-void ump_close(void)
+UMP_API_EXPORT void ump_close(void)
 {
 	ump_arch_close();
 }
 
-ump_secure_id ump_secure_id_get(ump_handle memh)
+UMP_API_EXPORT ump_secure_id ump_secure_id_get(ump_handle memh)
 {
 	ump_mem * mem = (ump_mem*)memh;
 
@@ -49,7 +49,7 @@
 	return mem->secure_id;
 }
 
-ump_handle ump_handle_create_from_secure_id(ump_secure_id secure_id)
+UMP_API_EXPORT ump_handle ump_handle_create_from_secure_id(ump_secure_id secure_id)
 {
 	unsigned long size;
 
@@ -97,7 +97,7 @@
 	return UMP_INVALID_MEMORY_HANDLE;
 }
 
-unsigned long ump_size_get(ump_handle memh)
+UMP_API_EXPORT unsigned long ump_size_get(ump_handle memh)
 {
 	ump_mem * mem = (ump_mem*)memh;
 
@@ -109,7 +109,7 @@
 	return mem->size;
 }
 
-void ump_read(void *dst, ump_handle srch, unsigned long offset, unsigned long length)
+UMP_API_EXPORT void ump_read(void *dst, ump_handle srch, unsigned long offset, unsigned long length)
 {
 	ump_mem * src = (ump_mem*)srch;
 
@@ -123,7 +123,7 @@
 	_ump_osu_memcpy(dst,(char*)(src->mapped_mem) + offset, length);
 }
 
-void ump_write(ump_handle dsth, unsigned long offset, const void *src, unsigned long length)
+UMP_API_EXPORT void ump_write(ump_handle dsth, unsigned long offset, const void *src, unsigned long length)
 {
 	ump_mem * dst = (ump_mem*)dsth;
 
@@ -139,7 +139,7 @@
 
 
 
-void* ump_mapped_pointer_get(ump_handle memh)
+UMP_API_EXPORT void* ump_mapped_pointer_get(ump_handle memh)
 {
 	ump_mem * mem = (ump_mem*)memh;
 
@@ -154,7 +154,7 @@
 
 
 
-void ump_mapped_pointer_release(ump_handle memh)
+UMP_API_EXPORT void ump_mapped_pointer_release(ump_handle memh)
 {
 	UMP_DEBUG_ASSERT(UMP_INVALID_MEMORY_HANDLE != memh, ("Handle is invalid"));
 	UMP_DEBUG_ASSERT(UMP_INVALID_SECURE_ID != ((ump_mem*)memh)->secure_id, ("Secure ID is inavlid"));
@@ -167,7 +167,7 @@
 
 
 
-void ump_reference_add(ump_handle memh)
+UMP_API_EXPORT void ump_reference_add(ump_handle memh)
 {
 	ump_mem * mem = (ump_mem*)memh;
 
@@ -183,7 +183,7 @@
 
 
 
-void ump_reference_release(ump_handle memh)
+UMP_API_EXPORT void ump_reference_release(ump_handle memh)
 {
 	ump_mem * mem = (ump_mem*)memh;
 
diff --git a/include/ump/ump_platform.h b/include/ump/ump_platform.h
index 8366958..68e01be 100644
--- a/include/ump/ump_platform.h
+++ b/include/ump/ump_platform.h
@@ -42,7 +42,23 @@
 
 #else
 
-#define UMP_API_EXPORT
+#if defined(__GNUC__)
+#if __GNUC__ >= 4
+#	define MALI_VISIBLE  __attribute__ ((visibility ("default")))		/**< Function should be visible from outside the dll */	
+#else
+#	define MALI_VISIBLE
+#endif
+
+#elif defined(__ARMCC_VERSION)
+/* ARMCC specific */
+#	define MALI_VISIBLE  __declspec(dllexport)
+
+#else
+#	define MALI_VISIBLE
+
+#endif
+
+#define UMP_API_EXPORT MALI_VISIBLE
 
 #endif
 
diff --git a/include/ump/ump_ref_drv.h b/include/ump/ump_ref_drv.h
index 79face0..19fb28d 100644
--- a/include/ump/ump_ref_drv.h
+++ b/include/ump/ump_ref_drv.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2011 ARM Limited. All rights reserved.
+ * Copyright (C) 2010 ARM Limited. All rights reserved.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/include/ump/ump_uk_types.h b/include/ump/ump_uk_types.h
index 6701158..1a4c1c8 100644
--- a/include/ump/ump_uk_types.h
+++ b/include/ump/ump_uk_types.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2011 ARM Limited. All rights reserved.
+ * Copyright (C) 2010 ARM Limited. All rights reserved.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
