diff --git a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DevicesInfo.java b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DevicesInfo.java
index e1ff5f5..5a142a3 100644
--- a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DevicesInfo.java
+++ b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DevicesInfo.java
@@ -1,23 +1,18 @@
 /*
- DomoWare UPnP Base Driver is an implementation of the OSGi UnP Device Spcifaction
- Copyright (C) 2004  Matteo Demuru, Francesco Furfari, Stefano "Kismet" Lenzi
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
- You can contact us at:
- {matte-d, sygent, kismet-sl} [at] users.sourceforge.net
+ *   Copyright 2006 The Apache Software Foundation
+ *
+ *   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.
+ *
  */
 package org.apache.felix.upnp.extra.controller;
 
diff --git a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DriverController.java b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DriverController.java
index 3b210c6..13d0342 100644
--- a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DriverController.java
+++ b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DriverController.java
@@ -1,23 +1,18 @@
 /*
- DomoWare UPnP Base Driver is an implementation of the OSGi UnP Device Spcifaction
- Copyright (C) 2004  Matteo Demuru, Francesco Furfari, Stefano "Kismet" Lenzi
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
- You can contact us at:
- {matte-d, sygent, kismet-sl} [at] users.sourceforge.net
+ *   Copyright 2006 The Apache Software Foundation
+ *
+ *   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.
+ *
  */
 package org.apache.felix.upnp.extra.controller;
 
diff --git a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Constants.java b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Constants.java
index c29b3e6..dde33a2 100644
--- a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Constants.java
+++ b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Constants.java
@@ -1,23 +1,18 @@
 /*
- DomoWare UPnP Base Driver is an implementation of the OSGi UnP Device Spcifaction
- Copyright (C) 2004  Matteo Demuru, Francesco Furfari, Stefano "Kismet" Lenzi
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
- You can contact us at:
- {matte-d, sygent, kismet-sl} [at] users.sourceforge.net
+ *   Copyright 2006 The Apache Software Foundation
+ *
+ *   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.
+ *
  */
 package org.apache.felix.upnp.extra.util;
 /**
diff --git a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Converter.java b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Converter.java
index abd5612..275bce8 100644
--- a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Converter.java
+++ b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Converter.java
@@ -1,24 +1,19 @@
 /*
-DomoWare UPnP Base Driver is an implementation of the OSGi UnP Device Spcifaction
-Copyright (C) 2004  Matteo Demuru, Francesco Furfari, Stefano "Kismet" Lenzi
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library 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
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-You can contact us at:
-	{matte-d, sygent, kismet-sl} [at] users.sourceforge.net
-*/
+ *   Copyright 2006 The Apache Software Foundation
+ *
+ *   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.
+ *
+ */
 
 package org.apache.felix.upnp.extra.util;
 
diff --git a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/UPnPException.java b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/UPnPException.java
index 9807ba6..9bdddbd 100644
--- a/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/UPnPException.java
+++ b/org.apache.felix.upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/UPnPException.java
@@ -1,23 +1,18 @@
 /*
- DomoWare UPnP Base Driver is an implementation of the OSGi UnP Device Spcifaction
- Copyright (C) 2004  Matteo Demuru, Francesco Furfari, Stefano "Kismet" Lenzi
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
- You can contact us at:
- {matte-d, sygent, kismet-sl} [at] users.sourceforge.net
+ *   Copyright 2006 The Apache Software Foundation
+ *
+ *   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.
+ *
  */
 package org.apache.felix.upnp.extra.util;
 
