diff --git a/configure.in b/configure.in
index db14982840dd500817fdc03157434c8afe0a0d7c..247a17da9409ca126f849ce644647d6e1414b5c7 100644
--- a/configure.in
+++ b/configure.in
@@ -7,7 +7,7 @@ AC_INIT(sql/mysqld.cc)
 AC_CANONICAL_SYSTEM
 # The Docs Makefile.am parses this line!
 # remember to also change ndb version below and update version.c in ndb
-AM_INIT_AUTOMAKE(mysql, 5.0.64)
+AM_INIT_AUTOMAKE(mysql, 5.0.66)
 AM_CONFIG_HEADER([include/config.h:config.h.in])
 
 PROTOCOL_VERSION=10
@@ -23,7 +23,7 @@ NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION:0:0
 # ndb version
 NDB_VERSION_MAJOR=5
 NDB_VERSION_MINOR=0
-NDB_VERSION_BUILD=64
+NDB_VERSION_BUILD=66
 NDB_VERSION_STATUS=""
 
 # Set all version vars based on $VERSION. How do we do this more elegant ?
diff --git a/mysql-test/r/federated_disabled.result b/mysql-test/r/federated_disabled.result
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/mysql-test/t/federated_disabled-master.opt b/mysql-test/t/federated_disabled-master.opt
new file mode 100644
index 0000000000000000000000000000000000000000..4f2df1dd301ac007a61dc75b8da32726545d0b4c
--- /dev/null
+++ b/mysql-test/t/federated_disabled-master.opt
@@ -0,0 +1 @@
+--skip-federated
diff --git a/mysql-test/t/federated_disabled.test b/mysql-test/t/federated_disabled.test
new file mode 100644
index 0000000000000000000000000000000000000000..99fcad76828090645324cc7c05d37fd16be0ca16
--- /dev/null
+++ b/mysql-test/t/federated_disabled.test
@@ -0,0 +1,3 @@
+source include/federated.inc;
+
+SHOW VARIABLES LIKE 'have_federated_engine';
diff --git a/mysys/errors.c b/mysys/errors.c
index 857de1325d4262ef6b3d5485ed054c58577649d6..1c13255a6166f5c50acd27070c352c200fb2d9eb 100644
--- a/mysys/errors.c
+++ b/mysys/errors.c
@@ -74,7 +74,7 @@ void init_glob_errs()
   EE(EE_STAT)		= "Can't get stat of '%s' (Errcode: %d)";
   EE(EE_CANT_CHSIZE)	= "Can't change size of file (Errcode: %d)";
   EE(EE_CANT_OPEN_STREAM)= "Can't open stream from handle (Errcode: %d)";
-  EE(EE_GETWD)		= "Can't get working dirctory (Errcode: %d)";
+  EE(EE_GETWD)		= "Can't get working directory (Errcode: %d)";
   EE(EE_SETWD)		= "Can't change dir to '%s' (Errcode: %d)";
   EE(EE_LINK_WARNING)	= "Warning: '%s' had %d links";
   EE(EE_OPEN_WARNING)	= "%d files and %d streams is left open\n";
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index c239530f2fcbf186b3c9e5c40b181ff24f19fc7f..cdae94f0a61031d7a9957627f2be277e488275e3 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -328,7 +328,7 @@ static bool lower_case_table_names_used= 0;
 static bool volatile select_thread_in_use, signal_thread_in_use;
 static bool volatile ready_to_exit;
 static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0;
-static my_bool opt_bdb, opt_isam, opt_ndbcluster, opt_merge;
+static my_bool opt_bdb, opt_isam, opt_ndbcluster, opt_merge, opt_federated;
 static my_bool opt_short_log_format= 0;
 static uint kill_cached_threads, wake_thread;
 static ulong killed_threads, thread_created;
@@ -4989,7 +4989,8 @@ enum options_mysqld
   OPT_INNODB_ROLLBACK_ON_TIMEOUT,
   OPT_SECURE_FILE_PRIV,
   OPT_KEEP_FILES_ON_CREATE,
-  OPT_INNODB_ADAPTIVE_HASH_INDEX
+  OPT_INNODB_ADAPTIVE_HASH_INDEX,
+  OPT_FEDERATED
 };
 
 
@@ -5175,6 +5176,9 @@ Disable with --skip-external-locking.",
    0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
   {"flush", OPT_FLUSH, "Flush tables to disk between SQL commands.", 0, 0, 0,
    GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+  {"federated", OPT_FEDERATED, "Enable Federated storage engine. Disable with \
+--skip-federated.",
+   (gptr*) &opt_federated, (gptr*) &opt_federated, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
   /* We must always support the next option to make scripts like mysqltest
      easier to do */
   {"gdb", OPT_DEBUGGING,
@@ -7322,6 +7326,14 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
     else
       have_merge_db= SHOW_OPTION_DISABLED;
     break;
+#ifdef HAVE_FEDERATED_DB
+  case OPT_FEDERATED:
+    if (opt_federated)
+      have_federated_db= SHOW_OPTION_YES;
+    else
+      have_federated_db= SHOW_OPTION_DISABLED;
+    break;
+#endif
 #ifdef HAVE_BERKELEY_DB
   case OPT_BDB_NOSYNC:
     /* Deprecated option */