Fix python compatibility test when a new generated code imports an old version(2.6.1 or older) generated code.
diff --git a/python/compatibility_tests/v2.5.0/test.sh b/python/compatibility_tests/v2.5.0/test.sh
index c640da8..78c16ad 100755
--- a/python/compatibility_tests/v2.5.0/test.sh
+++ b/python/compatibility_tests/v2.5.0/test.sh
@@ -92,16 +92,10 @@
 # Test A.3:
 #   proto set 1: use old version
 #   proto set 2 which may import protos in set 1: use new version
-# Compatiblility test fail if the old verison is less than 3.0.0-alpha-1.
-# Because module name aliases was added in v3.0.0-alpha-1 instead of
-# fully-qualified module names to refer to dependencies: dot was replaced
-# with _dot_.
-if [ "$(printf "$OLD_VERSION\n3.0.0" | sort -V | head -n 1 )" = "3.0.0" ]; then
-  cp old_protoc protoc_1
-  cp ../../../src/protoc protoc_2
-  python setup.py build
-  python setup.py test
-fi
+cp old_protoc protoc_1
+cp ../../../src/protoc protoc_2
+python setup.py build
+python setup.py test
 
 rm google -r -f
 rm build -r -f
diff --git a/src/google/protobuf/compiler/python/python_generator.cc b/src/google/protobuf/compiler/python/python_generator.cc
index f576912..f83f155 100644
--- a/src/google/protobuf/compiler/python/python_generator.cc
+++ b/src/google/protobuf/compiler/python/python_generator.cc
@@ -1380,8 +1380,17 @@
 void Generator::CopyPublicDependenciesAliases(
     const string& copy_from, const FileDescriptor* file) const {
   for (int i = 0; i < file->public_dependency_count(); ++i) {
+    string module_name = ModuleName(file->public_dependency(i)->name());
     string module_alias = ModuleAlias(file->public_dependency(i)->name());
-    printer_->Print("$alias$ = $copy_from$.$alias$\n", "alias", module_alias,
+    // There's no module alias in the dependent file if it was generated by
+    // an old protoc (less than 3.0.0-alpha-1). Use module name in this
+    // situation.
+    printer_->Print("try:\n"
+                    "  $alias$ = $copy_from$.$alias$\n"
+                    "except AttributeError:\n"
+                    "  $alias$ = $copy_from$.$module$\n",
+                    "alias", module_alias,
+                    "module", module_name,
                     "copy_from", copy_from);
     CopyPublicDependenciesAliases(copy_from, file->public_dependency(i));
   }