diff --git a/jni/pjproject-android/.svn/pristine/74/7487d11ef3d0bbe9f90528d73ee1ff0f47e25b73.svn-base b/jni/pjproject-android/.svn/pristine/74/7487d11ef3d0bbe9f90528d73ee1ff0f47e25b73.svn-base
new file mode 100644
index 0000000..6f29915
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/74/7487d11ef3d0bbe9f90528d73ee1ff0f47e25b73.svn-base
@@ -0,0 +1,83 @@
+/* $Id$ */
+/* 
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * 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 <e32std.h>
+#include <e32base.h>
+#include <e32std.h>
+#include <e32cons.h>
+#include <stdlib.h>
+
+
+//  Global Variables
+CConsoleBase* console;
+
+// Needed by APS
+TPtrC APP_UID = _L("A000000E");
+
+int app_main();
+
+
+////////////////////////////////////////////////////////////////////////////
+
+LOCAL_C void DoStartL()
+{
+    CActiveScheduler *scheduler = new (ELeave) CActiveScheduler;
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+
+    app_main();
+
+    CActiveScheduler::Install(NULL);
+    CleanupStack::Pop(scheduler);
+    delete scheduler;
+}
+
+
+////////////////////////////////////////////////////////////////////////////
+
+// E32Main()
+GLDEF_C TInt E32Main()
+{
+    // Mark heap usage
+    __UHEAP_MARK;
+
+    // Create cleanup stack
+    CTrapCleanup* cleanup = CTrapCleanup::New();
+
+    // Create output console
+    TRAPD(createError, console = Console::NewL(_L("Console"), TSize(KConsFullScreen,KConsFullScreen)));
+    if (createError)
+        return createError;
+
+    TRAPD(startError, DoStartL());
+
+    //console->Printf(_L("[press any key to close]\n"));
+    //console->Getch();
+
+    delete console;
+    delete cleanup;
+
+    CloseSTDLIB();
+
+    // Mark end of heap usage, detect memory leaks
+    __UHEAP_MARKEND;
+    return KErrNone;
+}
+
