diff --git a/samples/diacritize/main.py b/samples/diacritize/main.py
deleted file mode 100644
index 7aa7fbd..0000000
--- a/samples/diacritize/main.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/python2.4
-# -*- coding: utf-8 -*-
-#
-# Copyright (C) 2010 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Simple command-line example for Diacritize.
-
-Command-line application that adds diacritical
-marks to some text.
-"""
-
-__author__ = 'jcgregorio@google.com (Joe Gregorio)'
-
-import httplib2
-import pickle
-import pprint
-
-from apiclient.discovery import build
-
-
-def main():
-  # Build a service object for interacting with the API. Visit
-  # the Google APIs Console <http://code.google.com/apis/console>
-  # to get an API key for your own application.
-  service = build("diacritize", "v1",
-            developerKey="AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0")
-
-  print service.diacritize().corpus().get(
-      lang='ar',
-      last_letter='false',
-      message=u'مثال لتشكيل'
-      ).execute()['diacritized_text']
-
-if __name__ == '__main__':
-  main()
