diff --git a/lib/modules/Gnome.pmod b/lib/modules/Gnome.pmod
new file mode 100644
index 0000000000000000000000000000000000000000..9e003f04f3ae0f608c96cadd0c71ebba31696541
--- /dev/null
+++ b/lib/modules/Gnome.pmod
@@ -0,0 +1,10 @@
+mixed `[](string what)
+{
+  if(what == "_module_value") return ([])[0];
+  return (GTK["Gnome"+what] || GTK["gnome_"+what]);
+}
+
+array _indices()
+{
+  return glob( "GNOME_*", indices(GTK) ) + glob( "Gnome_*", indices(GTK) );
+}
diff --git a/src/post_modules/GTK/build_pgtk.pike b/src/post_modules/GTK/build_pgtk.pike
index e598b1568ef2e177af65f81db92b8917c3535c6a..9d414ff5abb0fa45abcf76c5cf1f21a50878b7b3 100755
--- a/src/post_modules/GTK/build_pgtk.pike
+++ b/src/post_modules/GTK/build_pgtk.pike
@@ -14,7 +14,7 @@ mapping signals = ([  ]);
 string glob_prototypes="";
 string line_id = "";
 
-int last_ended_with_nl, debug_mode=0, no_hashline=1;
+int last_ended_with_nl, debug_mode=1, no_hashline=0;
 void emit_nl(string what)
 {
   if(!no_hashline && debug_mode)
@@ -1363,6 +1363,11 @@ int main(int argc, array argv)
 	fn = line;
       constants += ("  add_integer_constant((char*)_data+"+
                     data_offset(fn+"\0")+", "+line+", 0);\n");
+    } else if(sscanf(line, "SCONSTANT(%s)", line)==1) {
+      if(!sscanf(line, "GTK_%s", fn))
+	fn = line;
+      constants += ("  add_string_constant((char*)_data+"+
+                    data_offset(fn+"\0")+", "+line+", 0);\n");
     } else if(sscanf(line, "SIMPLE%sFUNCTION(%s)", line, fn)==2) {
       last_function=fn;
       NUMBER_FUNCTION();
diff --git a/src/post_modules/GTK/source/constants.pre b/src/post_modules/GTK/source/constants.pre
index 23c51b885f3b609d3ef4a53a412e29ce69707131..dbbecb5b5410c1da1dac87c707667d9cd4d467cb 100644
--- a/src/post_modules/GTK/source/constants.pre
+++ b/src/post_modules/GTK/source/constants.pre
@@ -486,7 +486,7 @@ CONSTANT(GTK_CALENDAR_NO_MONTH_CHANGE);
 CONSTANT(GTK_CALENDAR_SHOW_WEEK_NUMBERS);
 CONSTANT(GTK_CALENDAR_WEEK_START_MONDAY);
 
-COND_WIDGET(gnome)
+COND_WIDGET(gnome);
 CONSTANT(GNOME_DOCK_ITEM_BEH_NORMAL);
 CONSTANT(GNOME_DOCK_ITEM_BEH_EXCLUSIVE);
 CONSTANT(GNOME_DOCK_ITEM_BEH_NEVER_FLOATING);
@@ -498,5 +498,180 @@ CONSTANT(GNOME_DOCK_LEFT);
 CONSTANT(GNOME_DOCK_RIGHT);
 CONSTANT(GNOME_DOCK_TOP);
 CONSTANT(GNOME_DOCK_BOTTOM);
-CONSTANT(GNOME_DOCK_FLOAT);
-END_COND_WIDGET()
+
+CONSTANT(GNOME_STOCK_PIXMAP_TYPE_NONE);
+CONSTANT(GNOME_STOCK_PIXMAP_TYPE_DATA);
+CONSTANT(GNOME_STOCK_PIXMAP_TYPE_FILE);
+CONSTANT(GNOME_STOCK_PIXMAP_TYPE_PATH);
+CONSTANT(GNOME_STOCK_PIXMAP_TYPE_WIDGET);
+CONSTANT(GNOME_STOCK_PIXMAP_TYPE_IMLIB);
+CONSTANT(GNOME_STOCK_PIXMAP_TYPE_IMLIB_SCALED);
+CONSTANT(GNOME_STOCK_PIXMAP_TYPE_GPIXMAP);
+
+SCONSTANT(GNOME_STOCK_PIXMAP_NEW);
+SCONSTANT(GNOME_STOCK_PIXMAP_OPEN);
+SCONSTANT(GNOME_STOCK_PIXMAP_CLOSE);
+SCONSTANT(GNOME_STOCK_PIXMAP_REVERT);
+SCONSTANT(GNOME_STOCK_PIXMAP_SAVE);
+SCONSTANT(GNOME_STOCK_PIXMAP_SAVE_AS);
+SCONSTANT(GNOME_STOCK_PIXMAP_CUT);
+SCONSTANT(GNOME_STOCK_PIXMAP_COPY);
+SCONSTANT(GNOME_STOCK_PIXMAP_PASTE);
+SCONSTANT(GNOME_STOCK_PIXMAP_CLEAR);
+SCONSTANT(GNOME_STOCK_PIXMAP_PROPERTIES);
+SCONSTANT(GNOME_STOCK_PIXMAP_PREFERENCES);
+SCONSTANT(GNOME_STOCK_PIXMAP_HELP);
+SCONSTANT(GNOME_STOCK_PIXMAP_SCORES);
+SCONSTANT(GNOME_STOCK_PIXMAP_PRINT);
+SCONSTANT(GNOME_STOCK_PIXMAP_SEARCH);
+SCONSTANT(GNOME_STOCK_PIXMAP_SRCHRPL);
+SCONSTANT(GNOME_STOCK_PIXMAP_BACK);
+SCONSTANT(GNOME_STOCK_PIXMAP_FORWARD);
+SCONSTANT(GNOME_STOCK_PIXMAP_FIRST);
+SCONSTANT(GNOME_STOCK_PIXMAP_LAST);
+SCONSTANT(GNOME_STOCK_PIXMAP_HOME);
+SCONSTANT(GNOME_STOCK_PIXMAP_STOP);
+SCONSTANT(GNOME_STOCK_PIXMAP_REFRESH);
+SCONSTANT(GNOME_STOCK_PIXMAP_UNDO);
+SCONSTANT(GNOME_STOCK_PIXMAP_REDO);
+SCONSTANT(GNOME_STOCK_PIXMAP_TIMER);
+SCONSTANT(GNOME_STOCK_PIXMAP_TIMER_STOP);
+SCONSTANT(GNOME_STOCK_PIXMAP_MAIL);
+SCONSTANT(GNOME_STOCK_PIXMAP_MAIL_RCV);
+SCONSTANT(GNOME_STOCK_PIXMAP_MAIL_SND);
+SCONSTANT(GNOME_STOCK_PIXMAP_MAIL_RPL);
+SCONSTANT(GNOME_STOCK_PIXMAP_MAIL_FWD);
+SCONSTANT(GNOME_STOCK_PIXMAP_MAIL_NEW);
+SCONSTANT(GNOME_STOCK_PIXMAP_TRASH);
+SCONSTANT(GNOME_STOCK_PIXMAP_TRASH_FULL);
+SCONSTANT(GNOME_STOCK_PIXMAP_UNDELETE);
+SCONSTANT(GNOME_STOCK_PIXMAP_SPELLCHECK);
+SCONSTANT(GNOME_STOCK_PIXMAP_MIC);
+SCONSTANT(GNOME_STOCK_PIXMAP_LINE_IN);
+SCONSTANT(GNOME_STOCK_PIXMAP_CDROM);
+SCONSTANT(GNOME_STOCK_PIXMAP_VOLUME);
+SCONSTANT(GNOME_STOCK_PIXMAP_MIDI);
+SCONSTANT(GNOME_STOCK_PIXMAP_BOOK_RED);
+SCONSTANT(GNOME_STOCK_PIXMAP_BOOK_GREEN);
+SCONSTANT(GNOME_STOCK_PIXMAP_BOOK_BLUE);
+SCONSTANT(GNOME_STOCK_PIXMAP_BOOK_YELLOW);
+SCONSTANT(GNOME_STOCK_PIXMAP_BOOK_OPEN);
+SCONSTANT(GNOME_STOCK_PIXMAP_ABOUT);
+SCONSTANT(GNOME_STOCK_PIXMAP_QUIT);
+SCONSTANT(GNOME_STOCK_PIXMAP_MULTIPLE);
+SCONSTANT(GNOME_STOCK_PIXMAP_NOT);
+SCONSTANT(GNOME_STOCK_PIXMAP_CONVERT);
+SCONSTANT(GNOME_STOCK_PIXMAP_JUMP_TO);
+SCONSTANT(GNOME_STOCK_PIXMAP_UP);
+SCONSTANT(GNOME_STOCK_PIXMAP_DOWN);
+SCONSTANT(GNOME_STOCK_PIXMAP_TOP);
+SCONSTANT(GNOME_STOCK_PIXMAP_BOTTOM);
+SCONSTANT(GNOME_STOCK_PIXMAP_ATTACH);
+SCONSTANT(GNOME_STOCK_PIXMAP_INDEX);
+SCONSTANT(GNOME_STOCK_PIXMAP_FONT);
+SCONSTANT(GNOME_STOCK_PIXMAP_EXEC);
+SCONSTANT(GNOME_STOCK_PIXMAP_ALIGN_LEFT);
+SCONSTANT(GNOME_STOCK_PIXMAP_ALIGN_RIGHT);
+SCONSTANT(GNOME_STOCK_PIXMAP_ALIGN_CENTER);
+SCONSTANT(GNOME_STOCK_PIXMAP_ALIGN_JUSTIFY);
+SCONSTANT(GNOME_STOCK_PIXMAP_TEXT_BOLD);
+SCONSTANT(GNOME_STOCK_PIXMAP_TEXT_ITALIC);
+SCONSTANT(GNOME_STOCK_PIXMAP_TEXT_UNDERLINE);
+SCONSTANT(GNOME_STOCK_PIXMAP_TEXT_STRIKEOUT);
+SCONSTANT(GNOME_STOCK_PIXMAP_TEXT_INDENT);
+SCONSTANT(GNOME_STOCK_PIXMAP_TEXT_UNINDENT);
+SCONSTANT(GNOME_STOCK_PIXMAP_EXIT);
+SCONSTANT(GNOME_STOCK_PIXMAP_COLORSELECTOR);
+SCONSTANT(GNOME_STOCK_PIXMAP_ADD);
+SCONSTANT(GNOME_STOCK_PIXMAP_REMOVE);
+SCONSTANT(GNOME_STOCK_PIXMAP_TABLE_BORDERS);
+SCONSTANT(GNOME_STOCK_PIXMAP_TABLE_FILL);
+SCONSTANT(GNOME_STOCK_PIXMAP_TEXT_BULLETED_LIST);
+SCONSTANT(GNOME_STOCK_PIXMAP_TEXT_NUMBERED_LIST);
+SCONSTANT(GNOME_STOCK_PIXMAP_REGULAR);
+SCONSTANT(GNOME_STOCK_PIXMAP_DISABLED);
+SCONSTANT(GNOME_STOCK_PIXMAP_FOCUSED);
+SCONSTANT(GNOME_STOCK_BUTTON_OK);
+SCONSTANT(GNOME_STOCK_BUTTON_CANCEL);
+SCONSTANT(GNOME_STOCK_BUTTON_YES);
+SCONSTANT(GNOME_STOCK_BUTTON_NO);
+SCONSTANT(GNOME_STOCK_BUTTON_CLOSE);
+SCONSTANT(GNOME_STOCK_BUTTON_APPLY);
+SCONSTANT(GNOME_STOCK_BUTTON_HELP);
+SCONSTANT(GNOME_STOCK_BUTTON_NEXT);
+SCONSTANT(GNOME_STOCK_BUTTON_PREV);
+SCONSTANT(GNOME_STOCK_BUTTON_UP);
+SCONSTANT(GNOME_STOCK_BUTTON_DOWN);
+SCONSTANT(GNOME_STOCK_BUTTON_FONT);
+
+
+SCONSTANT(GNOME_STOCK_MENU_BLANK);
+SCONSTANT(GNOME_STOCK_MENU_NEW);
+SCONSTANT(GNOME_STOCK_MENU_SAVE);
+SCONSTANT(GNOME_STOCK_MENU_SAVE_AS);
+SCONSTANT(GNOME_STOCK_MENU_REVERT);
+SCONSTANT(GNOME_STOCK_MENU_OPEN);
+SCONSTANT(GNOME_STOCK_MENU_CLOSE);
+SCONSTANT(GNOME_STOCK_MENU_QUIT);
+SCONSTANT(GNOME_STOCK_MENU_CUT);
+SCONSTANT(GNOME_STOCK_MENU_COPY);
+SCONSTANT(GNOME_STOCK_MENU_PASTE);
+SCONSTANT(GNOME_STOCK_MENU_PROP);
+SCONSTANT(GNOME_STOCK_MENU_PREF);
+SCONSTANT(GNOME_STOCK_MENU_ABOUT);
+SCONSTANT(GNOME_STOCK_MENU_SCORES);
+SCONSTANT(GNOME_STOCK_MENU_UNDO);
+SCONSTANT(GNOME_STOCK_MENU_REDO);
+SCONSTANT(GNOME_STOCK_MENU_PRINT);
+SCONSTANT(GNOME_STOCK_MENU_SEARCH);
+SCONSTANT(GNOME_STOCK_MENU_SRCHRPL);
+SCONSTANT(GNOME_STOCK_MENU_BACK);
+SCONSTANT(GNOME_STOCK_MENU_FORWARD);
+SCONSTANT(GNOME_STOCK_MENU_FIRST);
+SCONSTANT(GNOME_STOCK_MENU_LAST);
+SCONSTANT(GNOME_STOCK_MENU_HOME);
+SCONSTANT(GNOME_STOCK_MENU_STOP);
+SCONSTANT(GNOME_STOCK_MENU_REFRESH);
+SCONSTANT(GNOME_STOCK_MENU_MAIL);
+SCONSTANT(GNOME_STOCK_MENU_MAIL_RCV);
+SCONSTANT(GNOME_STOCK_MENU_MAIL_SND);
+SCONSTANT(GNOME_STOCK_MENU_MAIL_RPL);
+SCONSTANT(GNOME_STOCK_MENU_MAIL_FWD);
+SCONSTANT(GNOME_STOCK_MENU_MAIL_NEW);
+SCONSTANT(GNOME_STOCK_MENU_TRASH);
+SCONSTANT(GNOME_STOCK_MENU_TRASH_FULL);
+SCONSTANT(GNOME_STOCK_MENU_UNDELETE);
+SCONSTANT(GNOME_STOCK_MENU_TIMER);
+SCONSTANT(GNOME_STOCK_MENU_TIMER_STOP);
+SCONSTANT(GNOME_STOCK_MENU_SPELLCHECK);
+SCONSTANT(GNOME_STOCK_MENU_MIC);
+SCONSTANT(GNOME_STOCK_MENU_LINE_IN);
+SCONSTANT(GNOME_STOCK_MENU_CDROM);
+SCONSTANT(GNOME_STOCK_MENU_VOLUME);
+SCONSTANT(GNOME_STOCK_MENU_MIDI);
+SCONSTANT(GNOME_STOCK_MENU_BOOK_RED);
+SCONSTANT(GNOME_STOCK_MENU_BOOK_GREEN);
+SCONSTANT(GNOME_STOCK_MENU_BOOK_BLUE);
+SCONSTANT(GNOME_STOCK_MENU_BOOK_YELLOW);
+SCONSTANT(GNOME_STOCK_MENU_BOOK_OPEN);
+SCONSTANT(GNOME_STOCK_MENU_CONVERT);
+SCONSTANT(GNOME_STOCK_MENU_UP);
+SCONSTANT(GNOME_STOCK_MENU_DOWN);
+SCONSTANT(GNOME_STOCK_MENU_TOP);
+SCONSTANT(GNOME_STOCK_MENU_BOTTOM);
+SCONSTANT(GNOME_STOCK_MENU_ATTACH);
+SCONSTANT(GNOME_STOCK_MENU_INDEX);
+SCONSTANT(GNOME_STOCK_MENU_FONT);
+SCONSTANT(GNOME_STOCK_MENU_EXEC);
+SCONSTANT(GNOME_STOCK_MENU_ALIGN_LEFT);
+SCONSTANT(GNOME_STOCK_MENU_ALIGN_RIGHT);
+SCONSTANT(GNOME_STOCK_MENU_ALIGN_CENTER);
+SCONSTANT(GNOME_STOCK_MENU_ALIGN_JUSTIFY);
+SCONSTANT(GNOME_STOCK_MENU_TEXT_BOLD);
+SCONSTANT(GNOME_STOCK_MENU_TEXT_ITALIC);
+SCONSTANT(GNOME_STOCK_MENU_TEXT_UNDERLINE);
+SCONSTANT(GNOME_STOCK_MENU_TEXT_STRIKEOUT);
+SCONSTANT(GNOME_STOCK_MENU_EXIT);
+SCONSTANT(GNOME_STOCK_MENU_JUMP_TO);
+
+END_COND_WIDGET(gnome);
diff --git a/src/post_modules/GTK/source/gnomedockitem.pre b/src/post_modules/GTK/source/gnomedockitem.pre
index 5a9d28df02c3c42d59266e6410991945cbee6b63..28ea6d92ded5e3bf562b64ce7623e790964af9ca 100644
--- a/src/post_modules/GTK/source/gnomedockitem.pre
+++ b/src/post_modules/GTK/source/gnomedockitem.pre
@@ -6,12 +6,6 @@ SIGNAL("dock-drag-end", "This signal is emitted at the end of a dock item drag."
 SIGNAL("dock-drag-motion", "This signal is emitted while the item is being dragged and reports that the pointer position has changed.");
 SIGNAL("dock-detatch", "This signal is emitted when an item is detached from its parent dock band and thus becomes a floating item.");
 
-CONSTANT(GNOME_DOCK_ITEM_BEH_NORMAL);
-CONSTANT(GNOME_DOCK_ITEM_BEH_EXCLUSIVE);
-CONSTANT(GNOME_DOCK_ITEM_BEH_NEVER_FLOATING);
-CONSTANT(GNOME_DOCK_ITEM_BEH_NEVER_VERTICAL);
-CONSTANT(GNOME_DOCK_ITEM_BEH_NEVER_HORIZONTAL);
-CONSTANT(GNOME_DOCK_ITEM_BEH_LOCKED);
 
 COMPLEX_FUNCTION( create, string, int );
 NAME_ARGS(name, behaviour);