diff -r 1e4cc5e7112a gtk/ScintillaGTK.cxx
--- a/gtk/ScintillaGTK.cxx	Tue Jul 22 17:51:29 2014 +1000
+++ b/gtk/ScintillaGTK.cxx	Tue Jul 22 14:51:12 2014 +0200
@@ -120,7 +120,7 @@
 extern std::string UTF8FromLatin1(const char *s, int len);
 
 class ScintillaGTK : public ScintillaBase {
-	_ScintillaObject *sci;
+	_ScintillaWidget *sci;
 	Window wText;
 	Window scrollbarv;
 	Window scrollbarh;
@@ -172,7 +172,7 @@
 	ScintillaGTK &operator=(const ScintillaGTK &);
 
 public:
-	explicit ScintillaGTK(_ScintillaObject *sci_);
+	explicit ScintillaGTK(_ScintillaWidget *sci_);
 	virtual ~ScintillaGTK();
 	static void ClassInit(OBJECT_CLASS* object_class, GtkWidgetClass *widget_class, GtkContainerClass *container_class);
 private:
@@ -370,11 +370,11 @@
 }
 
 static ScintillaGTK *ScintillaFromWidget(GtkWidget *widget) {
-	ScintillaObject *scio = reinterpret_cast<ScintillaObject *>(widget);
+	ScintillaWidget *scio = reinterpret_cast<ScintillaWidget *>(widget);
 	return reinterpret_cast<ScintillaGTK *>(scio->pscin);
 }
 
-ScintillaGTK::ScintillaGTK(_ScintillaObject *sci_) :
+ScintillaGTK::ScintillaGTK(_ScintillaWidget *sci_) :
 		adjustmentv(0), adjustmenth(0),
 		verticalScrollBarWidth(30), horizontalScrollBarHeight(30),
 		evbtn(0), capturedMouse(false), dragWasDropped(false),
@@ -2400,7 +2400,7 @@
 
 void ScintillaGTK::Destroy(GObject *object) {
 	try {
-		ScintillaObject *scio = reinterpret_cast<ScintillaObject *>(object);
+		ScintillaWidget *scio = reinterpret_cast<ScintillaWidget *>(object);
 
 		// This avoids a double destruction
 		if (!scio->pscin)
@@ -2856,39 +2856,44 @@
 	return reinterpret_cast<ScintillaGTK *>(ptr)->WndProc(iMessage, wParam, lParam);
 }
 
-sptr_t scintilla_send_message(ScintillaObject *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
+sptr_t scintilla_widget_send_message(ScintillaWidget *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
 	ScintillaGTK *psci = reinterpret_cast<ScintillaGTK *>(sci->pscin);
 	return psci->WndProc(iMessage, wParam, lParam);
 }
 
-static void scintilla_class_init(ScintillaClass *klass);
-static void scintilla_init(ScintillaObject *sci);
+/* deprecated, for compatibility */
+sptr_t scintilla_send_message(ScintillaWidget *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
+
+	return scintilla_widget_send_message(sci, iMessage, wParam, lParam);
+}
+
+static void scintilla_widget_class_init(ScintillaClass *klass);
+static void scintilla_widget_init(ScintillaWidget *sci);
 
 extern void Platform_Initialise();
 extern void Platform_Finalise();
 
-GType scintilla_get_type() {
+GType scintilla_widget_get_type() {
 	static GType scintilla_type = 0;
 	try {
 
 		if (!scintilla_type) {
-			scintilla_type = g_type_from_name("Scintilla");
+			scintilla_type = g_type_from_name("ScintillaWidget");
 			if (!scintilla_type) {
 				static GTypeInfo scintilla_info = {
 					(guint16) sizeof (ScintillaClass),
 					NULL, //(GBaseInitFunc)
 					NULL, //(GBaseFinalizeFunc)
-					(GClassInitFunc) scintilla_class_init,
+					(GClassInitFunc) scintilla_widget_class_init,
 					NULL, //(GClassFinalizeFunc)
 					NULL, //gconstpointer data
-					(guint16) sizeof (ScintillaObject),
+					(guint16) sizeof (ScintillaWidget),
 					0, //n_preallocs
-					(GInstanceInitFunc) scintilla_init,
+					(GInstanceInitFunc) scintilla_widget_init,
 					NULL //(GTypeValueTable*)
 				};
-
 				scintilla_type = g_type_register_static(
-				            GTK_TYPE_CONTAINER, "Scintilla", &scintilla_info, (GTypeFlags) 0);
+				            GTK_TYPE_CONTAINER, "ScintillaWidget", &scintilla_info, (GTypeFlags) 0);
 			}
 		}
 
@@ -2897,6 +2902,12 @@
 	return scintilla_type;
 }
 
+/* deprecated, for compatibility */
+GType scintilla_get_type() {
+
+	return scintilla_widget_get_type();
+}
+
 void ScintillaGTK::ClassInit(OBJECT_CLASS* object_class, GtkWidgetClass *widget_class, GtkContainerClass *container_class) {
 	Platform_Initialise();
 #ifdef SCI_LEXER
@@ -2955,7 +2966,7 @@
 #define SIG_MARSHAL scintilla_marshal_NONE__INT_POINTER
 #define MARSHAL_ARGUMENTS G_TYPE_INT, G_TYPE_POINTER
 
-static void scintilla_class_init(ScintillaClass *klass) {
+static void scintilla_widget_class_init(ScintillaClass *klass) {
 	try {
 		OBJECT_CLASS *object_class = (OBJECT_CLASS*) klass;
 		GtkWidgetClass *widget_class = (GtkWidgetClass*) klass;
@@ -2992,7 +3003,7 @@
 	}
 }
 
-static void scintilla_init(ScintillaObject *sci) {
+static void scintilla_widget_init(ScintillaWidget *sci) {
 	try {
 #if GTK_CHECK_VERSION(2,20,0)
 		gtk_widget_set_can_focus(GTK_WIDGET(sci), TRUE);
@@ -3004,18 +3015,30 @@
 	}
 }
 
-GtkWidget* scintilla_new() {
+GtkWidget* scintilla_widget_new() {
 	GtkWidget *widget = GTK_WIDGET(g_object_new(scintilla_get_type(), NULL));
 	gtk_widget_set_direction(widget, GTK_TEXT_DIR_LTR);
 
 	return widget;
 }
 
-void scintilla_set_id(ScintillaObject *sci, uptr_t id) {
+/* deprecated, for compatibility */
+GtkWidget *scintilla_new() {
+
+	return scintilla_widget_new();
+}
+
+void scintilla_widget_set_id(ScintillaWidget *sci, uptr_t id) {
 	ScintillaGTK *psci = reinterpret_cast<ScintillaGTK *>(sci->pscin);
 	psci->ctrlID = id;
 }
 
+/* deprecated, for compatibility */
+void scintilla_set_id(ScintillaWidget *sci, uptr_t id) {
+
+	scintilla_set_id(sci, id);
+}
+
 void scintilla_release_resources(void) {
 	try {
 		Platform_Finalise();
diff -r 1e4cc5e7112a include/ScintillaWidget.h
--- a/include/ScintillaWidget.h	Tue Jul 22 17:51:29 2014 +1000
+++ b/include/ScintillaWidget.h	Tue Jul 22 14:51:12 2014 +0200
@@ -11,34 +11,56 @@
 
 #if defined(GTK)
 
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#define SCINTILLA(obj)          G_TYPE_CHECK_INSTANCE_CAST (obj, scintilla_get_type (), ScintillaObject)
-#define SCINTILLA_CLASS(klass)  G_TYPE_CHECK_CLASS_CAST (klass, scintilla_get_type (), ScintillaClass)
-#define IS_SCINTILLA(obj)       G_TYPE_CHECK_INSTANCE_TYPE (obj, scintilla_get_type ())
+/*
+ * Type macros.
+ */
+#define SCINTILLA_TYPE_WIDGET             (scintilla_widget_get_type())
+#define SCINTILLA_WIDGET(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj), SCINTILLA_TYPE_WIDGET, ScintillaWidget))
+#define SCINTILLA_IS_WIDGET(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCINTILLA_TYPE_WIDGET))
+#define SCINTILLA_WIDGET_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass), SCINTILLA_TYPE_WIDGET, ScintillaWidgetClass))
+#define SCINTILLA_IS_WIDGET_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass), SCINTILLA_TYPE_WIDGET))
+#define SCINTILLA_WIDGET_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj), SCINTILLA_TYPE_WIDGET, ScintillaWidgetClass))
 
-typedef struct _ScintillaObject ScintillaObject;
-typedef struct _ScintillaClass  ScintillaClass;
+typedef struct _ScintillaWidget          ScintillaWidget;
+typedef struct _ScintillaWidgetClass     ScintillaWidgetClass;
+typedef void                             ScintillaWidgetPrivate;
 
-struct _ScintillaObject {
-	GtkContainer cont;
-	void *pscin;
+struct _ScintillaWidget
+{
+	GtkContainer parent;
+
+	/*< private >*/
+	ScintillaWidgetPrivate *pscin;
 };
 
-struct _ScintillaClass {
+struct _ScintillaWidgetClass
+{
 	GtkContainerClass parent_class;
 
-	void (* command) (ScintillaObject *ttt);
-	void (* notify) (ScintillaObject *ttt);
+	void (* command) (ScintillaWidget *ttt);
+	void (* notify) (ScintillaWidget *ttt);
 };
 
-GType		scintilla_get_type	(void);
-GtkWidget*	scintilla_new		(void);
-void		scintilla_set_id	(ScintillaObject *sci, uptr_t id);
-sptr_t		scintilla_send_message	(ScintillaObject *sci,unsigned int iMessage, uptr_t wParam, sptr_t lParam);
-void		scintilla_release_resources(void);
+GType scintilla_widget_get_type (void);
+
+/*
+ * Method definitions.
+ */
+GtkWidget	*scintilla_widget_new (void);
+
+long		scintilla_widget_send_message	(ScintillaWidget *sci,unsigned int iMessage,
+											 unsigned long wParam, long lParam);
+
+void		scintilla_widget_set_id			(ScintillaWidget *sci, uptr_t id);
+void		scintilla_release_resources		(void);
 
 #define SCINTILLA_NOTIFY "sci-notify"
 
@@ -46,6 +68,9 @@
 }
 #endif
 
-#endif
+/* include compat header for now, remove this after deprecation period */
+#include "ScintillaWidgetCompat.h"
+
+#endif /* GTK */
 
 #endif
diff -r 1e4cc5e7112a include/ScintillaWidgetCompat.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/ScintillaWidgetCompat.h	Tue Jul 22 14:51:12 2014 +0200
@@ -0,0 +1,38 @@
+/* Scintilla source code edit control */
+/* Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
+ * The License.txt file describes the conditions under which this software may be distributed. */
+
+#ifndef SCINTILLAWIDGETCOMPAT_H
+#define SCINTILLAWIDGETCOMPAT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * This header contains definitions to keep backwards compatibility for clients.
+ *
+ * All of this is deprecated and may be removed in the future, so you should
+ * transition to ScintillaWidget or maintain a copy of this header
+ */
+
+typedef struct _ScintillaWidget       ScintillaObject;
+typedef struct _ScintillaWidgetClass  ScintillaClass;
+
+#define SCINTILLA(x) SCINTILLA_WIDGET(x)
+#define IS_SCINTILLA(x) SCINTILLA_IS_WIDGET(x)
+
+GType scintilla_get_type (void);
+
+GType		scintilla_get_type		(void);
+GtkWidget*	scintilla_new			(void);
+void		scintilla_set_id		(ScintillaObject *sci, uptr_t id);
+sptr_t		scintilla_send_message	(ScintillaObject *sci,unsigned int iMessage, uptr_t wParam, sptr_t lParam);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif
