diff --git a/include/wx/html/forcelnk.h b/include/wx/html/forcelnk.h
index 2a9c70f5c6..6fb8810fdb 100644
--- a/include/wx/html/forcelnk.h
+++ b/include/wx/html/forcelnk.h
@@ -57,5 +57,17 @@ See mod_*.cpp and htmlwin.cpp for example :-)
static int _link_dummy_var_##module_name = \
_link_dummy_func_##module_name ();
+#define FORCE_WXHTML_MODULES() \
+ FORCE_LINK(m_layout) \
+ FORCE_LINK(m_fonts) \
+ FORCE_LINK(m_image) \
+ FORCE_LINK(m_list) \
+ FORCE_LINK(m_dflist) \
+ FORCE_LINK(m_pre) \
+ FORCE_LINK(m_hline) \
+ FORCE_LINK(m_links) \
+ FORCE_LINK(m_tables) \
+ FORCE_LINK(m_meta)
+
#endif // _WX_FORCELNK_H_
diff --git a/src/html/htmlwin.cpp b/src/html/htmlwin.cpp
index d80cb51617..c029c706fc 100644
--- a/src/html/htmlwin.cpp
+++ b/src/html/htmlwin.cpp
@@ -30,7 +30,6 @@
#endif
#include "wx/html/htmlwin.h"
-#include "wx/html/forcelnk.h"
#include "wx/html/htmlproc.h"
#include "wx/list.h"
@@ -777,20 +776,9 @@ public:
IMPLEMENT_DYNAMIC_CLASS(wxHtmlWinModule, wxModule)
-
-
-///// default mod handlers are forced there:
-
-FORCE_LINK(m_layout)
-FORCE_LINK(m_fonts)
-FORCE_LINK(m_image)
-FORCE_LINK(m_list)
-FORCE_LINK(m_dflist)
-FORCE_LINK(m_pre)
-FORCE_LINK(m_hline)
-FORCE_LINK(m_links)
-FORCE_LINK(m_tables)
-FORCE_LINK(m_meta)
-
+// This hack forces the linker to always link in m_* files
+// (wxHTML doesn't work without handlers from these files)
+#include "wx/html/forcelnk.h"
+FORCE_WXHTML_MODULES()
#endif
diff --git a/src/html/htmprint.cpp b/src/html/htmprint.cpp
index b3eee134e8..3dd7639e7b 100644
--- a/src/html/htmprint.cpp
+++ b/src/html/htmprint.cpp
@@ -595,5 +595,9 @@ wxHtmlPrintout *wxHtmlEasyPrinting::CreatePrintout()
}
+// This hack forces the linker to always link in m_* files
+// (wxHTML doesn't work without handlers from these files)
+#include "wx/html/forcelnk.h"
+FORCE_WXHTML_MODULES()
#endif // wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE