diff --git a/cinelerra/data/Makefile.am b/cinelerra/data/Makefile.am
index 58fbb8d..4727018 100644
--- a/cinelerra/data/Makefile.am
+++ b/cinelerra/data/Makefile.am
@@ -1,6 +1,6 @@
 noinst_LIBRARIES = libimagedata.a
 libimagedata_a_SOURCES =
-nodist_libimagedata_a_SOURCES = theme.data
+nodist_libimagedata_a_SOURCES = theme.data.c
 
 PNGS = \
 	mode_add.png \
@@ -11,14 +11,17 @@ PNGS = \
 	mode_subtract.png
 
 # this rule creates the .o file from the concatenated PNGs
-.data.$(OBJEXT):
-	$(OBJCOPY) -I binary -B $(OBJCOPYARCH) -O $(OBJCOPYTARGET) $< $@
+#.data.$(OBJEXT):
+#	$(OBJCOPY) -I binary -B $(OBJCOPYARCH) -O $(OBJCOPYTARGET) $< $@
 
 theme.data: $(PNGS)
 	$(top_builddir)/guicast/bootstrap $@ $^ || { rm -f $@; exit 1; }
 
+theme.data.c: theme.data
+	$(top_builddir)/guicast/bin2c $< $@ theme_data || { rm -f $@; exit 1; }
+
 clean-local:
-	rm -f theme.data
+	rm -f theme.data*
 
 EXTRA_DIST = \
 	$(PNGS) \
diff --git a/configure.in b/configure.in
index 94e2df5..0e02bc9 100644
--- a/configure.in
+++ b/configure.in
@@ -430,27 +462,27 @@ if test "x$libGL" = "xyes"; then
 	OPENGL_LIBS="-lGLU $OPENGL_LIBS"
 	AC_DEFINE(HAVE_GL)
 fi
 AC_SUBST(OPENGL_LIBS)
 # END OpenGL
 
 ############## .png TO .o CONVERSION
 
-AC_CHECK_TOOL(OBJCOPY, objcopy)
-if test "x$OBJCOPY" = "x"; then
-	AC_MSG_ERROR("objcopy from GNU binutils >= 2.11.90 not found")
-fi
-AC_CHECK_TOOL(OBJDUMP, objdump)
+#AC_CHECK_TOOL(OBJCOPY, objcopy)
+#if test "x$OBJCOPY" = "x"; then
+#	AC_MSG_ERROR("objcopy from GNU binutils >= 2.11.90 not found")
+#fi
+#AC_CHECK_TOOL(OBJDUMP, objdump)
 dnl extract target and architecture if objdump was found
-if test "x$OBJDUMP" = "x"; then :; else
-  AC_MSG_CHECKING(for object target)
-  octarget=`$OBJDUMP --info | sed -ne '2p'` # extract first target
-  AC_MSG_RESULT($octarget)
-  AC_MSG_CHECKING(for object architecture)
-  ocarch=`$OBJDUMP --info | sed -ne '4p'` # extract corresponding arch
-  AC_MSG_RESULT($ocarch)
-fi
-AC_SUBST(OBJCOPYTARGET, $octarget)
-AC_SUBST(OBJCOPYARCH, $ocarch)
+#if test "x$OBJDUMP" = "x"; then :; else
+#  AC_MSG_CHECKING(for object target)
+#  octarget=`$OBJDUMP --info | sed -ne '2p'` # extract first target
+#  AC_MSG_RESULT($octarget)
+#  AC_MSG_CHECKING(for object architecture)
+#  ocarch=`$OBJDUMP --info | sed -ne '4p'` # extract corresponding arch
+#  AC_MSG_RESULT($ocarch)
+#fi
+#AC_SUBST(OBJCOPYTARGET, $octarget)
+#AC_SUBST(OBJCOPYARCH, $ocarch)
 
 ############## END of .png TO .o CONVERSION
 
diff --git a/guicast/Makefile.am b/guicast/Makefile.am
index 2d9e1ce..b77aedf 100644
--- a/guicast/Makefile.am
+++ b/guicast/Makefile.am
@@ -1,5 +1,5 @@
 lib_LTLIBRARIES = libguicast.la
-noinst_PROGRAMS=bootstrap
+noinst_PROGRAMS=bootstrap bin2c
 
 libguicast_la_LIBADD = $(OPENGL_LIBS) -lXxf86vm -lXv -lXext -lX11 $(X_EXTRA_LIBS)
 libguicast_la_LDFLAGS = $(X_LIBS) -version-info 1:0:0 
@@ -204,6 +209,9 @@ BOOTSTRAP_CFLAGS=
 bootstrap_SOURCES=bootstrap.c
 bootstrap_LDADD =
 
+bin2c_SOURCES=bin2c.c
+bin2c_LDADD = 
+
 # custom rule that disregards any fancy flags that the user might have set
 bootstrap.$(OBJEXT): bootstrap.c
 	$(CC) $(BOOTSTRAP_CFLAGS) -c $<
diff --git a/guicast/bin2c.c b/guicast/bin2c.c
new file mode 100644
index 0000000..0671c2e
--- /dev/null
+++ b/guicast/bin2c.c
@@ -0,0 +1,68 @@
+/*
+ * bin2c: A Program to convert binary data into C source code
+ * Copyright 2004 by Adrian Prantl <adrian@f4z.org>
+ *
+ *   This program 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 Foundation; either version 2 of the License, or     
+ *   (at your option) any later version.
+ *
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+
+char* self = 0;
+
+void usage()
+{
+  printf("Usage:\n%s input_binary_file output_c_file symbol_name\n\n", self);
+}
+
+void bail_out(const char* s1, const char* s2)
+{
+  fprintf(stderr, "%s: FATAL ERROR:\n%s%s\n", self, s1, s2);
+  exit(1);
+}
+
+int main(int argc, char** argv)
+{
+  FILE *fi, *fo;
+  int c, i;
+
+  self = argv[0];
+
+  if (argc != 4) {
+    usage();
+    return 1;
+  }
+
+  if ((fi = fopen(argv[1], "rb")) == 0)
+    bail_out("Cannot open input file ", argv[1]);
+
+  if ((fo = fopen(argv[2], "w")) == 0)
+    bail_out("Cannot open output file ", argv[2]);
+
+  if ((c = fgetc(fi)) != EOF) {
+    fprintf(fo, "extern volatile unsigned char _binary_%s_start[];\n", argv[3]);
+    fprintf(fo, "volatile unsigned char _binary_%s_start[] = {\n", argv[3]);
+    fprintf(fo, c<16 ? "  0x%x" : " 0x%x", (unsigned char)c);
+  }
+
+  i = 1;
+  while ((c = fgetc(fi)) != EOF) {
+    if (i < 12)
+      fprintf(fo, c<16 ? ",  0x%x" : ", 0x%x", (unsigned char)c);
+    else {
+      fprintf(fo, c<16 ? ",\n  0x%x" : ",\n 0x%x", (unsigned char)c);
+      i = 0;
+    }
+    i++;
+  }
+  fprintf(fo, " };\n");
+
+  printf("converted %s\n", argv[1]);
+
+  return 0;
+}
+
diff --git a/plugins/bluedottheme/data/Makefile.am b/plugins/bluedottheme/data/Makefile.am
index b83511a..157d0ad 100644
--- a/plugins/bluedottheme/data/Makefile.am
+++ b/plugins/bluedottheme/data/Makefile.am
@@ -1,6 +1,6 @@
 noinst_LIBRARIES = libimagedata.a
 libimagedata_a_SOURCES =
-nodist_libimagedata_a_SOURCES = bluedottheme.data
+nodist_libimagedata_a_SOURCES = bluedottheme.data.c
 
 PNGS = \
 about_bg.png \
@@ -374,14 +374,16 @@ zoombar_right.png
 
 
 # this rule creates the .o file from the concatenated PNGs
-.data.$(OBJEXT):
-	$(OBJCOPY) -I binary -B $(OBJCOPYARCH) -O $(OBJCOPYTARGET) $< $@
+bluedottheme.data.o: bluedottheme.data.c
+
+bluedottheme.data.c: bluedottheme.data
+	$(top_builddir)/guicast/bin2c $< $@ bluedottheme_data || { rm -f $@; exit 1; }
 
 bluedottheme.data: $(PNGS)
 	$(top_builddir)/guicast/bootstrap $@ $^ || { rm -f $@; exit 1; }
 
 clean-local:
-	rm -f bluedottheme.data
+	rm -f bluedottheme.data*
 
 EXTRA_DIST = \
 $(PNGS) \
diff --git a/plugins/defaulttheme/data/Makefile.am b/plugins/defaulttheme/data/Makefile.am
index 702a816..089afff 100644
--- a/plugins/defaulttheme/data/Makefile.am
+++ b/plugins/defaulttheme/data/Makefile.am
@@ -1,6 +1,6 @@
 noinst_LIBRARIES = libimagedata.a
 libimagedata_a_SOURCES =
-nodist_libimagedata_a_SOURCES = defaulttheme.data
+nodist_libimagedata_a_SOURCES = defaulttheme.data.c
 
 # The following bash scripts makes up the list of used PNG's
 
@@ -319,14 +319,20 @@ zoombar_left.png \
 zoombar_right.png
 
 # this rule creates the .o file from the concatenated PNGs
-.data.$(OBJEXT):
-	$(OBJCOPY) -I binary -B $(OBJCOPYARCH) -O $(OBJCOPYTARGET) $< $@
+#.data.$(OBJEXT):
+#	$(OBJCOPY) -I binary -B $(OBJCOPYARCH) -O $(OBJCOPYTARGET) $< $@
+
+defaulttheme.data.o: defaulttheme.data.c
 
 defaulttheme.data: $(PNGS)
 	$(top_builddir)/guicast/bootstrap $@ $^ || { rm -f $@; exit 1; }
 
+defaulttheme.data.c: defaulttheme.data
+	$(top_builddir)/guicast/bin2c $< $@ defaulttheme_data || { rm -f $@; exit 1; }
+
+
 clean-local:
-	rm -f defaulttheme.data
+	rm -f defaulttheme.data*
  
 EXTRA_DIST = \
 	$(PNGS) \
diff --git a/plugins/suv/data/Makefile.am b/plugins/suv/data/Makefile.am
index ef9cad6..eca6edc 100644
--- a/plugins/suv/data/Makefile.am
+++ b/plugins/suv/data/Makefile.am
@@ -1,6 +1,6 @@
 noinst_LIBRARIES = libimagedata.a
 libimagedata_a_SOURCES =
-nodist_libimagedata_a_SOURCES = suv.data
+nodist_libimagedata_a_SOURCES = suv.data.c
 
 PNGS = \
 	about.png \
@@ -588,14 +588,19 @@ PNGS = \
 	zoomtumble_up.png
 
 # this rule creates the .o file from the concatenated PNGs
-.data.$(OBJEXT):
-	$(OBJCOPY) -I binary -B $(OBJCOPYARCH) -O $(OBJCOPYTARGET) $< $@
+#.data.$(OBJEXT):
+#	$(OBJCOPY) -I binary -B $(OBJCOPYARCH) -O $(OBJCOPYTARGET) $< $@
+
+suv.data.o: suv.data.c
+
+suv.data.c: suv.data
+	$(top_builddir)/guicast/bin2c $< $@ suv_data || { rm -f $@; exit 1; }
 
 suv.data: $(PNGS)
 	$(top_builddir)/guicast/bootstrap $@ $^ || { rm -f $@; exit 1; }
 
 clean-local:
-	rm -f suv.data
+	rm -f suv.data*
  
 EXTRA_DIST = \
 	$(PNGS) \
