diff --git a/dylib.h b/dylib.h
new file mode 100644
index 0000000000..9af6d1e2e1
--- /dev/null
+++ b/dylib.h
@@ -0,0 +1,83 @@
+/* RetroArch - A frontend for libretro.
+ * Copyright (C) 2010-2014 - Hans-Kristian Arntzen
+ * Copyright (C) 2011-2015 - Daniel De Matteis
+ *
+ * RetroArch is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Found-
+ * ation, either version 3 of the License, or (at your option) any later version.
+ *
+ * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with RetroArch.
+ * If not, see .
+ */
+
+#ifndef __DYLIB_H
+#define __DYLIB_H
+
+#include
+#include "libretro.h"
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#if defined(HAVE_DYNAMIC) || defined(HAVE_DYLIB)
+#define NEED_DYNAMIC
+#else
+#undef NEED_DYNAMIC
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void *dylib_t;
+typedef void (*function_t)(void);
+
+/**
+ * init_libretro_sym:
+ * @dummy : Load dummy symbols if true
+ *
+ * Initializes libretro symbols and
+ * setups environment callback functions.
+ **/
+void init_libretro_sym(bool dummy);
+
+/**
+ * uninit_libretro_sym:
+ *
+ * Frees libretro core.
+ *
+ * Frees all core options,
+ * associated state, and
+ * unbind all libretro callback symbols.
+ **/
+void uninit_libretro_sym(void);
+
+#ifdef NEED_DYNAMIC
+/**
+ * dylib_load:
+ * @path : Path to libretro core library.
+ *
+ * Platform independent dylib loading.
+ *
+ * Returns: library handle on success, otherwise NULL.
+ **/
+dylib_t dylib_load(const char *path);
+
+/**
+ * dylib_close:
+ * @lib : Library handle.
+ *
+ * Frees library handle.
+ **/
+void dylib_close(dylib_t lib);
+
+function_t dylib_proc(dylib_t lib, const char *proc);
+#endif
+
+
+#endif
diff --git a/dynamic.h b/dynamic.h
index cdfb614cdc..dc1ed37097 100644
--- a/dynamic.h
+++ b/dynamic.h
@@ -24,61 +24,12 @@
#include "config.h"
#endif
-#if defined(HAVE_DYNAMIC) || defined(HAVE_DYLIB)
-#define NEED_DYNAMIC
-#else
-#undef NEED_DYNAMIC
-#endif
+#include "dylib.h"
#ifdef __cplusplus
extern "C" {
#endif
-typedef void *dylib_t;
-typedef void (*function_t)(void);
-
-/**
- * init_libretro_sym:
- * @dummy : Load dummy symbols if true
- *
- * Initializes libretro symbols and
- * setups environment callback functions.
- **/
-void init_libretro_sym(bool dummy);
-
-/**
- * uninit_libretro_sym:
- *
- * Frees libretro core.
- *
- * Frees all core options,
- * associated state, and
- * unbind all libretro callback symbols.
- **/
-void uninit_libretro_sym(void);
-
-#ifdef NEED_DYNAMIC
-/**
- * dylib_load:
- * @path : Path to libretro core library.
- *
- * Platform independent dylib loading.
- *
- * Returns: library handle on success, otherwise NULL.
- **/
-dylib_t dylib_load(const char *path);
-
-/**
- * dylib_close:
- * @lib : Library handle.
- *
- * Frees library handle.
- **/
-void dylib_close(dylib_t lib);
-
-function_t dylib_proc(dylib_t lib, const char *proc);
-#endif
-
/**
* libretro_get_environment_info:
* @func : Function pointer for get_environment_info.
diff --git a/gfx/d3d/d3d.cpp b/gfx/d3d/d3d.cpp
index cae1c924de..e294218cc6 100644
--- a/gfx/d3d/d3d.cpp
+++ b/gfx/d3d/d3d.cpp
@@ -50,7 +50,7 @@
#endif
#endif
-#include "../../dynamic.h"
+#include "../../dylib.h"
/* forward declarations */
static void d3d_calculate_rect(d3d_video_t *d3d,