diff --git a/wscript b/wscript
index 8fd2b02..0120c7f 100644
--- a/wscript
+++ b/wscript
@@ -129,7 +129,33 @@
 
     conf.write_config_header('src/config.h')
 
+def update_html_qrc(bld):
+  import os
+  from tempfile import NamedTemporaryFile
+  from waflib import Logs
+  try:
+    Logs.pprint('BLUE', '[Pre-build] Generating gui/html.qrc')
+    if os.path.exists('gui/html'):
+      tf = NamedTemporaryFile(delete=False)
+      tf.write('<RCC><qresource prefix="/">\n')
+      for root, dirs, files in os.walk('gui/html'):
+        # get rid of 'gui' at the beginning for each root
+        path = '/'.join(root.split('/')[1:])
+        for filename in files:
+          tf.write('\t<file>{0}/{1}</file>\n'.format(path, filename))
+
+      tf.write('</qresource></RCC>')
+      tf.close()
+      os.rename(tf.name, 'gui/html.qrc')
+
+    else:
+      bld.fatal('Can not find html directory: gui/html does not exist')
+  except os.error as e:
+    bld.fatal('Os exception! Errno: {0}, Error: {1}'.format(e.errno(), e.strerror()))
+
 def build (bld):
+    bld.add_pre_fun(update_html_qrc)
+
     executor = bld.objects (
         target = "executor",
         features = ["cxx"],
@@ -205,7 +231,7 @@
         target = "ChronoShare",
         features = "qt4 cxx cxxprogram",
         defines = "WAF",
-        source = bld.path.ant_glob(['gui/*.cpp', 'gui/*.cc', 'gui/*.qrc']),
+        source = bld.path.ant_glob(['gui/*.cpp', 'gui/*.cc', 'gui/images.qrc', 'gui/html.qrc']),
         includes = "ccnx scheduler executor fs-watcher gui src adhoc server . ",
         use = "BOOST BOOST_FILESYSTEM BOOST_DATE_TIME SQLITE3 QTCORE QTGUI LOG4CXX fs_watcher ccnx database chronoshare http_server"
         )
@@ -266,3 +292,15 @@
 def m_hook(self, node):
     """Alias .mm files to be compiled the same as .cc files, gcc/clang will do the right thing."""
     return self.create_compiled_task('cxx', node)
+
+#from waflib.TaskGen import extension
+#from waflib.Task import Task
+#class RecursiveQrcTask(Task):
+#  def run(self):
+#    print "inside RecursiveQrcTask: %s" % self.inputs
+#
+#@extension('.qrc')
+#def rec_qrc(self, node):
+#  print "inside rec_qc: %s" % node
+#  return self.create_task('RecursiveQrcTask', node)
+
