Use full import paths for test protos.
diff --git a/Makefile b/Makefile
index 7d2df79..291de7d 100644
--- a/Makefile
+++ b/Makefile
@@ -50,4 +50,3 @@
 	make -C protoc-gen-go/descriptor regenerate
 	make -C protoc-gen-go/plugin regenerate
 	make -C proto/testdata regenerate
-	make -C proto/proto3_proto regenerate
diff --git a/proto/Makefile b/proto/Makefile
index fb838ed..f1f0656 100644
--- a/proto/Makefile
+++ b/proto/Makefile
@@ -39,5 +39,5 @@
 generate-test-pbs:
 	make install
 	make -C testdata
-	make -C proto3_proto
+	protoc --go_out=Mtestdata/test.proto=github.com/golang/protobuf/proto/testdata:. proto3_proto/proto3.proto
 	make
diff --git a/proto/all_test.go b/proto/all_test.go
index aa67b10..41bb40f 100644
--- a/proto/all_test.go
+++ b/proto/all_test.go
@@ -44,8 +44,8 @@
 	"testing"
 	"time"
 
-	. "./testdata"
 	. "github.com/golang/protobuf/proto"
+	. "github.com/golang/protobuf/proto/testdata"
 )
 
 var globalO *Buffer
diff --git a/proto/clone_test.go b/proto/clone_test.go
index 1ac177d..9db0fb6 100644
--- a/proto/clone_test.go
+++ b/proto/clone_test.go
@@ -36,7 +36,7 @@
 
 	"github.com/golang/protobuf/proto"
 
-	pb "./testdata"
+	pb "github.com/golang/protobuf/proto/testdata"
 )
 
 var cloneTestMessage = &pb.MyMessage{
diff --git a/proto/equal_test.go b/proto/equal_test.go
index cc25833..b322f65 100644
--- a/proto/equal_test.go
+++ b/proto/equal_test.go
@@ -34,8 +34,8 @@
 import (
 	"testing"
 
-	pb "./testdata"
 	. "github.com/golang/protobuf/proto"
+	pb "github.com/golang/protobuf/proto/testdata"
 )
 
 // Four identical base messages.
diff --git a/proto/extensions_test.go b/proto/extensions_test.go
index 6495f56..92d1334 100644
--- a/proto/extensions_test.go
+++ b/proto/extensions_test.go
@@ -34,8 +34,8 @@
 import (
 	"testing"
 
-	pb "./testdata"
 	"github.com/golang/protobuf/proto"
+	pb "github.com/golang/protobuf/proto/testdata"
 )
 
 func TestGetExtensionsWithMissingExtensions(t *testing.T) {
diff --git a/proto/proto3_proto/Makefile b/proto/proto3_proto/Makefile
deleted file mode 100644
index 75144b5..0000000
--- a/proto/proto3_proto/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-# Go support for Protocol Buffers - Google's data interchange format
-#
-# Copyright 2014 The Go Authors.  All rights reserved.
-# https://github.com/golang/protobuf
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-include ../../Make.protobuf
-
-all:	regenerate
-
-regenerate:
-	rm -f proto3.pb.go
-	make proto3.pb.go
-
-# The following rules are just aids to development. Not needed for typical testing.
-
-diff:	regenerate
-	git diff proto3.pb.go
diff --git a/proto/proto3_test.go b/proto/proto3_test.go
index d4c96a9..0efebea 100644
--- a/proto/proto3_test.go
+++ b/proto/proto3_test.go
@@ -34,8 +34,8 @@
 import (
 	"testing"
 
-	pb "./proto3_proto"
 	"github.com/golang/protobuf/proto"
+	pb "github.com/golang/protobuf/proto/proto3_proto"
 )
 
 func TestProto3ZeroValues(t *testing.T) {
diff --git a/proto/size_test.go b/proto/size_test.go
index e5f92d6..42694f4 100644
--- a/proto/size_test.go
+++ b/proto/size_test.go
@@ -35,9 +35,9 @@
 	"log"
 	"testing"
 
-	proto3pb "./proto3_proto"
-	pb "./testdata"
 	. "github.com/golang/protobuf/proto"
+	proto3pb "github.com/golang/protobuf/proto/proto3_proto"
+	pb "github.com/golang/protobuf/proto/testdata"
 )
 
 var messageWithExtension1 = &pb.MyMessage{Count: Int32(7)}
diff --git a/proto/testdata/test.proto b/proto/testdata/test.proto
index f413ad7..6cc755b 100644
--- a/proto/testdata/test.proto
+++ b/proto/testdata/test.proto
@@ -33,7 +33,7 @@
 
 syntax = "proto2";
 
-package test_proto;
+package testdata;
 
 enum FOO { FOO1 = 1; };
 
diff --git a/proto/text_parser_test.go b/proto/text_parser_test.go
index 1360e8e..2e51da3 100644
--- a/proto/text_parser_test.go
+++ b/proto/text_parser_test.go
@@ -36,9 +36,9 @@
 	"reflect"
 	"testing"
 
-	proto3pb "./proto3_proto"
-	. "./testdata"
 	. "github.com/golang/protobuf/proto"
+	proto3pb "github.com/golang/protobuf/proto/proto3_proto"
+	. "github.com/golang/protobuf/proto/testdata"
 )
 
 type UnmarshalTextTest struct {
diff --git a/proto/text_test.go b/proto/text_test.go
index 707bedd..03e9a98 100644
--- a/proto/text_test.go
+++ b/proto/text_test.go
@@ -41,8 +41,8 @@
 
 	"github.com/golang/protobuf/proto"
 
-	proto3pb "./proto3_proto"
-	pb "./testdata"
+	proto3pb "github.com/golang/protobuf/proto/proto3_proto"
+	pb "github.com/golang/protobuf/proto/testdata"
 )
 
 // textMessage implements the methods that allow it to marshal and unmarshal