diff --git a/LICENSE b/LICENSE
index 73d6968..2e2f3ec 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,25 @@
-The MIT License (MIT)
+goproperties - Java properties decoder for Go
 
-Copyright (c) 2013, Frank Schroeder
+Copyright (c) 2013 - Frank Schroeder
 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+All rights reserved.
 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+2. 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.
+
+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.
diff --git a/decoder.go b/decoder.go
index 150c8b9..3c4246c 100644
--- a/decoder.go
+++ b/decoder.go
@@ -1,6 +1,8 @@
-// Copyright 2013 Frank Schroeder. All rights reserved. MIT licensed.
+// Copyright 2013 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
 
-package properties
+package goproperties
 
 import (
 	"fmt"
@@ -13,7 +15,7 @@
 	enc_iso_8859_1
 )
 
-// Decodes an ISO-8859-1 encoded string into a Properties struct.
+// Decodes an ISO-8859-1 encoded buffer into a Properties struct.
 func Decode(buf []byte) (*Properties, error) {
 	return decodeWithEncoding(buf, enc_iso_8859_1)
 }
diff --git a/decoder_test.go b/decoder_test.go
index 1543c45..e445b8b 100644
--- a/decoder_test.go
+++ b/decoder_test.go
@@ -1,6 +1,8 @@
-// Copyright 2013 Frank Schroeder. All rights reserved. MIT licensed.
+// Copyright 2013 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
 
-package properties
+package goproperties
 
 import (
 	"flag"
diff --git a/doc.go b/doc.go
index 4faf16e..17992fd 100644
--- a/doc.go
+++ b/doc.go
@@ -1,6 +1,8 @@
-// Copyright 2013 Frank Schroeder. All rights reserved. MIT licensed.
+// Copyright 2013 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
 
-// Package properties reads Java properties files.
+// Package goproperties reads Java properties files.
 //
 // Java properties files contain key/value pairs in one of the following form:
 //
@@ -62,4 +64,4 @@
 //   # key = value with €
 //   key = value with \u20AC
 //
-package properties
+package goproperties
diff --git a/example_test.go b/example_test.go
index b4072e2..7ecbc11 100644
--- a/example_test.go
+++ b/example_test.go
@@ -1,6 +1,8 @@
-// Copyright 2013 Frank Schroeder. All rights reserved. MIT licensed.
+// Copyright 2013 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
 
-package properties
+package goproperties
 
 import (
 	"fmt"
diff --git a/lex.go b/lex.go
index ae2bdea..80506bb 100644
--- a/lex.go
+++ b/lex.go
@@ -1,4 +1,6 @@
-// Copyright 2013 Frank Schroeder. All rights reserved. MIT licensed.
+// Copyright 2013 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
 //
 // Parts of the lexer are taken from the template/text/parser package
 // For these parts the following applies:
@@ -8,7 +10,7 @@
 // license that can be found in the LICENSE file of the go 1.2
 // distribution.
 
-package properties
+package goproperties
 
 import (
 	"fmt"
diff --git a/parser.go b/parser.go
index ffd7233..0909443 100644
--- a/parser.go
+++ b/parser.go
@@ -1,6 +1,8 @@
-// Copyright 2013 Frank Schroeder. All rights reserved. MIT licensed.
+// Copyright 2013 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
 
-package properties
+package goproperties
 
 import (
 	"fmt"
diff --git a/properties.go b/properties.go
index 65dcd41..ee0d318 100644
--- a/properties.go
+++ b/properties.go
@@ -1,6 +1,8 @@
-// Copyright 2013 Frank Schroeder. All rights reserved. MIT licensed.
+// Copyright 2013 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
 
-package properties
+package goproperties
 
 type Properties struct {
 	m map[string]string
