diff -Nur enchant-1.2.6/configure.in enchant-1.2.6_zemberek/configure.in
--- enchant-1.2.6/configure.in	2006-04-23 19:28:29.000000000 +0300
+++ enchant-1.2.6_zemberek/configure.in	2007-01-13 09:52:34.000000000 +0200
@@ -131,6 +131,28 @@
 AC_SUBST(MYSPELL_CFLAGS)
 AC_SUBST(MYSPELL_LIBS)
 
+build_zemberek=yes
+
+AC_ARG_ENABLE(zemberek, [  --disable-zemberek     enable the zemberek backend [default=auto]], build_zemberek="$enableval", build_zemberek=yes)
+
+if test "x$have_cxx" = "xno"; then
+   build_zemberek=no
+fi
+AC_MSG_CHECKING([For DBus-Glib >= 0.62])
+if pkg-config --atleast-version=0.62 dbus-glib-1; then
+	ZEMBEREK_CFLAGS=`pkg-config --cflags dbus-glib-1`
+	ZEMBEREK_LIBS=`pkg-config --libs dbus-glib-1`
+else
+	build_zemberek=no
+fi
+
+AC_SUBST(ZEMBEREK_CFLAGS)
+AC_SUBST(ZEMBEREK_LIBS)
+
+AM_CONDITIONAL(WITH_ZEMBEREK, test "x$build_zemberek" = "xyes")
+
+zemberek_dir=${datadir}/enchant/zemberek
+
 check_aspell=yes
 build_aspell=no
 
@@ -265,6 +287,7 @@
 src/myspell/Makefile
 src/hspell/Makefile
 src/applespell/Makefile
+src/zemberek/Makefile
 tests/Makefile
 tests/ispell
 doc/Makefile
@@ -290,5 +313,6 @@
 	Build Uspell backend:           ${build_uspell}
 	Build Hspell backend:           ${build_hspell}
 	Build Myspell/Hunspell backend: ${build_myspell}
+	Build Zemberek backend:		${build_zemberek}
 	Build a relocatable library:	${relocatable_library}
 "
diff -Nur enchant-1.2.6/data/enchant.ordering enchant-1.2.6_zemberek/data/enchant.ordering
--- enchant-1.2.6/data/enchant.ordering	2005-11-28 07:05:26.000000000 +0200
+++ enchant-1.2.6_zemberek/data/enchant.ordering	2007-01-13 09:52:34.000000000 +0200
@@ -2,3 +2,4 @@
 he:hspell,myspell
 he_IL:hspell,myspell
 yi:uspell
+tr:zemberek
diff -Nur enchant-1.2.6/src/Makefile.am enchant-1.2.6_zemberek/src/Makefile.am
--- enchant-1.2.6/src/Makefile.am	2006-03-31 23:22:48.000000000 +0300
+++ enchant-1.2.6_zemberek/src/Makefile.am	2007-01-13 09:52:34.000000000 +0200
@@ -1,4 +1,4 @@
-SUBDIRS=. aspell ispell uspell myspell hspell applespell
+SUBDIRS=. aspell ispell uspell myspell hspell applespell zemberek
 
 INCLUDES=-I$(top_srcdir) $(ENCHANT_CFLAGS) -DENCHANT_GLOBAL_MODULE_DIR=\"$(libdir)/enchant\" -DENCHANT_GLOBAL_ORDERING=\"$(datadir)/enchant\" -D_ENCHANT_BUILD=1
 
diff -Nur enchant-1.2.6/src/zemberek/Makefile.am enchant-1.2.6_zemberek/src/zemberek/Makefile.am
--- enchant-1.2.6/src/zemberek/Makefile.am	1970-01-01 02:00:00.000000000 +0200
+++ enchant-1.2.6_zemberek/src/zemberek/Makefile.am	2007-01-13 09:52:34.000000000 +0200
@@ -0,0 +1,20 @@
+if WITH_ZEMBEREK
+target_lib = libenchant_zemberek.la
+else
+target_lib =
+endif
+
+INCLUDES=-I$(top_srcdir)/src $(ENCHANT_CFLAGS) $(ZEMBEREK_CFLAGS) -D_ENCHANT_BUILD=1
+
+zemberek_LTLIBRARIES = $(target_lib)
+zemberekdir= $(libdir)/enchant
+
+libenchant_zemberek_lalibdir=$(libdir)/enchant
+libenchant_zemberek_la_LIBADD= $(ZEMBEREK_LIBS) $(top_builddir)/src/libenchant.la
+libenchant_zemberek_la_LDFLAGS = -avoid-version -no-undefined
+
+libenchant_zemberek_la_SOURCES =\
+	zemberek.cpp		\
+	zemberek_provider.cpp
+
+
diff -Nur enchant-1.2.6/src/zemberek/zemberek.cpp enchant-1.2.6_zemberek/src/zemberek/zemberek.cpp
--- enchant-1.2.6/src/zemberek/zemberek.cpp	1970-01-01 02:00:00.000000000 +0200
+++ enchant-1.2.6_zemberek/src/zemberek/zemberek.cpp	2007-01-13 09:59:31.000000000 +0200
@@ -0,0 +1,84 @@
+/* Copyright (C) 2006 Barış Metin <baris@pardus.org.tr>
+ * Copyright (C) 2007 Serkan Kaba <serkan_kaba@yahoo.com>
+ * 
+ * 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.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
+ * 02111-1307, USA.
+ */
+
+#include "zemberek.h"
+
+Zemberek::Zemberek()
+{
+
+  GError *Error;
+  g_type_init ();
+
+  Error = NULL;
+  connection = dbus_g_bus_get (DBUS_BUS_SYSTEM,
+                               &Error);
+  if (connection == NULL) {
+      //g_stpcpy(error,Error->message);
+      g_error_free (Error);
+  }
+  proxy = dbus_g_proxy_new_for_name (connection,
+                                     "net.zemberekserver.server.dbus",
+                                     "/net/zemberekserver/server/dbus/ZemberekDbus",
+                                     "net.zemberekserver.server.dbus.ZemberekDbusInterface");
+}
+
+
+Zemberek::~Zemberek()
+{
+    if(proxy)
+	    g_object_unref (proxy);
+}
+
+
+int Zemberek::checkWord(const char* word ) const
+{
+    gboolean result;
+    GError *Error;
+    Error=NULL;
+    if (!dbus_g_proxy_call (proxy, "kelimeDenetle", &Error,
+    	G_TYPE_STRING,word,G_TYPE_INVALID,
+    	G_TYPE_BOOLEAN, &result, G_TYPE_INVALID)) {
+    	//g_stpcpy(error,Error->message);
+    	g_error_free (Error);
+    	return -1;
+    }
+    else {
+    	if (result)
+    		return 0;
+    	else
+    		return 1;
+    }
+}
+
+
+char** Zemberek::suggestWord(const char* word, size_t *out_n_suggs)
+{
+    char** suggs;
+    GError *Error;
+    Error=NULL;
+    if (!dbus_g_proxy_call (proxy, "oner", &Error,
+    	G_TYPE_STRING,word,G_TYPE_INVALID,
+    	G_TYPE_STRV, &suggs,G_TYPE_INVALID)) {
+    	//g_stpcpy(error,Error->message);
+    	g_error_free (Error);
+    	return NULL;
+    }
+    *out_n_suggs = g_strv_length(suggs);
+    return suggs;
+}
diff -Nur enchant-1.2.6/src/zemberek/zemberek.h enchant-1.2.6_zemberek/src/zemberek/zemberek.h
--- enchant-1.2.6/src/zemberek/zemberek.h	1970-01-01 02:00:00.000000000 +0200
+++ enchant-1.2.6_zemberek/src/zemberek/zemberek.h	2007-01-13 09:55:22.000000000 +0200
@@ -0,0 +1,41 @@
+/* Copyright (C) 2006 Barış Metin <baris@pardus.org.tr>
+ * Copyright (C) 2007 Serkan Kaba <serkan_kaba@yahoo.com>
+ * 
+ * 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.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
+ * 02111-1307, USA.
+ */
+
+#ifndef ZEMBEREK_H
+#define ZEMBEREK_H
+
+#include <dbus/dbus-glib.h>
+#include <glib.h>
+
+using namespace std;
+
+class Zemberek
+{
+public:
+    Zemberek();
+    ~Zemberek();
+    
+    int checkWord(const char* word) const;
+    char** suggestWord(const char* word, size_t *out_n_suggs);
+    //char *error;
+private:
+    DBusGConnection *connection;
+    DBusGProxy *proxy;
+};
+#endif
diff -Nur enchant-1.2.6/src/zemberek/zemberek_provider.cpp enchant-1.2.6_zemberek/src/zemberek/zemberek_provider.cpp
--- enchant-1.2.6/src/zemberek/zemberek_provider.cpp	1970-01-01 02:00:00.000000000 +0200
+++ enchant-1.2.6_zemberek/src/zemberek/zemberek_provider.cpp	2007-01-13 10:00:01.000000000 +0200
@@ -0,0 +1,144 @@
+/* Copyright (C) 2006 Barış Metin <baris@pardus.org.tr>
+ * Copyright (C) 2007 Serkan Kaba <serkan_kaba@yahoo.com>
+ * 
+ * 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.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
+ * 02111-1307, USA.
+ */
+
+#include <glib.h>
+
+#include "enchant.h"
+#include "enchant-provider.h"
+
+#include "zemberek.h"
+
+ENCHANT_PLUGIN_DECLARE("Zemberek")
+
+
+static int
+zemberek_dict_check (EnchantDict * me, const char *const word, size_t len)
+{
+    Zemberek *checker;
+    checker = (Zemberek *) me->user_data;
+    int result = checker->checkWord(word);
+    /*
+    if(result == -1) {
+    	enchant_dict_set_error(me,checker->error);
+    	g_free(checker->error);
+    }
+    */
+    return result;
+}
+
+static char**
+zemberek_dict_suggest (EnchantDict * me, const char *const word,
+		     size_t len, size_t * out_n_suggs)
+{
+    Zemberek *checker;
+    checker = (Zemberek *) me->user_data;
+    char **result = checker->suggestWord (word, out_n_suggs);
+    /*
+    if(!result) {
+    	enchant_dict_set_error(me,checker->error);
+    	g_free(checker->error);
+    }
+    */
+    return result;
+}
+
+
+static void
+zemberek_provider_dispose(EnchantProvider *me)
+{
+    g_free(me);
+}
+
+static EnchantDict*
+zemberek_provider_request_dict(EnchantProvider *me, const char *tag)
+{
+    Zemberek* checker = new Zemberek();
+
+    if (!checker)
+	return NULL;
+
+    EnchantDict* dict = g_new0(EnchantDict, 1);
+    dict->user_data = (void *) checker;
+    dict->check = zemberek_dict_check;
+    dict->suggest = zemberek_dict_suggest;
+	
+    return dict;
+}
+
+static void
+zemberek_provider_dispose_dict (EnchantProvider * me, EnchantDict * dict)
+{
+    Zemberek *checker;
+    checker = (Zemberek *) dict->user_data;
+    delete checker;
+    g_free (dict);
+}
+
+
+static char *
+zemberek_provider_identify (EnchantProvider * me)
+{
+	return "zemberek";
+}
+
+static char *
+zemberek_provider_describe (EnchantProvider * me)
+{
+	return "Zemberek Provider";
+}
+
+static void
+zemberek_provider_free_string_list (EnchantProvider * me, char **str_list)
+{
+	g_strfreev (str_list);
+}
+
+static char ** 
+zemberek_provider_list_dicts (EnchantProvider * me, 
+			      size_t * out_n_dicts)
+{
+	char ** out_list = NULL;
+	*out_n_dicts = 1;
+	out_list = g_new0 (char *, 2);
+	out_list[0] = g_strdup ("tr");
+		
+	return out_list;
+}
+
+
+extern "C" {
+
+ENCHANT_MODULE_EXPORT(EnchantProvider *) 
+init_enchant_provider(void)
+{
+    EnchantProvider *provider;
+	
+    provider = g_new0(EnchantProvider, 1);
+    provider->dispose = zemberek_provider_dispose;
+    provider->request_dict = zemberek_provider_request_dict;
+    provider->dispose_dict = zemberek_provider_dispose_dict;
+    provider->identify = zemberek_provider_identify;
+    provider->describe = zemberek_provider_describe;
+    provider->list_dicts = zemberek_provider_list_dicts;
+    provider->free_string_list = zemberek_provider_free_string_list;
+
+    return provider;
+}
+
+} 
