diff --git a/insert.module b/insert.module
index b71ff79..91fa6aa 100644
--- a/insert.module
+++ b/insert.module
@@ -25,6 +25,19 @@ function insert_elements() {
  * Implementation of hook_init().
  */
 function insert_init() {
+  _insert_include_once();
+}
+
+/**
+ * Include files that contain implementations of
+ * hook_insert_styles() and hook_insert_widgets()
+ */
+function _insert_include_once() {
+  // only do this once.
+  static $_first_run = TRUE;
+  if (!$_first_run) return;
+  $_first_run = FALSE;
+
   // Default file and image implementations.
   module_load_include('inc', 'insert', 'includes/insert');
 
@@ -87,6 +100,7 @@ function insert_styles($reset = FALSE) {
 
   if (!isset($styles) || $reset) {
     $styles = array();
+    _insert_include_once();
     foreach (module_implements('insert_styles') as $module) {
       $module_styles = module_invoke($module, 'insert_styles');
       foreach ($module_styles as $name => $style) {
@@ -138,6 +152,7 @@ function insert_widgets($reset = FALSE) {
 
   if (!isset($widgets) || $reset) {
     $widgets = array();
+    _insert_include_once();
     foreach (module_implements('insert_widgets') as $module) {
       $module_widgets = module_invoke($module, 'insert_widgets');
       foreach ($module_widgets as $type => $widget) {
