diff --git a/Readme.md b/Readme.md
index 16ff485..22c95cd 100644
--- a/Readme.md
+++ b/Readme.md
@@ -18,7 +18,7 @@
 
 Intents allow a service to leverage CXF extensions like features. A service can list the named intents it requires. 
 It will then only be exported / imported once all the intents are available. This allows for example security restrictions or logging.
-For more informations see [common module](common).
+For more information see [common module](common).
 
 ## Build
 
diff --git a/distribution/Readme.md b/distribution/Readme.md
index 651bf9d..e0ce8f9 100644
--- a/distribution/Readme.md
+++ b/distribution/Readme.md
@@ -1,4 +1,4 @@
-# CXF DOSGi Distribtions
+# CXF DOSGi Distributions
 
 ## Apache karaf features
 
diff --git a/provider-ws/Readme.md b/provider-ws/Readme.md
index 6632058..c6b7a8c 100644
--- a/provider-ws/Readme.md
+++ b/provider-ws/Readme.md
@@ -18,7 +18,7 @@
 
 ## Simple
 
-This mode uses the CXF simple frontend and the Aegis Databinding. It can export almost any service but is not much configureable. Aegis is also not very popular anymore. So this
+This mode uses the CXF simple frontend and the Aegis Databinding. It can export almost any service but is not much configurable. Aegis is also not very popular anymore. So this
 mode for exporting existing services and small tests. For most cases the JAX-WS mode is recommended.
 
 ## JAX-WS
diff --git a/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsProvider.java b/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsProvider.java
index 7584f02..6006fe8 100644
--- a/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsProvider.java
+++ b/provider-ws/src/main/java/org/apache/cxf/dosgi/dsw/handlers/ws/WsProvider.java
@@ -191,7 +191,7 @@
                                                          completeEndpointAddress, intentNames);
             return createServerFromFactory(factory, epd);
         } catch (Exception e) {
-            throw new RuntimeException("Error exporting service with adress " + completeEndpointAddress, e);
+            throw new RuntimeException("Error exporting service with address " + completeEndpointAddress, e);
         }
     }
 
diff --git a/release_notes.md b/release_notes.md
index 1c70343..23f7ec5 100644
--- a/release_notes.md
+++ b/release_notes.md
@@ -204,7 +204,7 @@
     * [DOSGI-69] - CXF-DOSGi requires internet access when reading XML
     * [DOSGI-90] - Do not use/assume that endpoint.id is an address
     * [DOSGI-92] - Exception : Applying intent: SOAP via binding config
-    * [DOSGI-109] - NullPointerException in ToloplogyManager during bundle
+    * [DOSGI-109] - NullPointerException in TopologyManager during bundle
     * stop
     * [DOSGI-110] - Unable to export multiple services
     * [DOSGI-111] - DOSGi bundle attempts to load WSDL using wrong bundle in
@@ -280,7 +280,7 @@
 1.3
 ===
 
-The following modules have been removed from the destribution:
+The following modules have been removed from the distribution:
 
 * org.apache.cxf.dosgi:cxf-dosgi-ri-discovery-distributed-zookeeper-wrapper
 
@@ -288,7 +288,7 @@
 
 * org.apache.cxf.dosgi:cxf-dosgi-remote-service-admin-interfaces
 
-  org.osgi:org.osgi.enterprize:4.2.0 artifact is now available. See DOSGI-104 for more information.
+  org.osgi:org.osgi.enterprise:4.2.0 artifact is now available. See DOSGI-104 for more information.
 
 Many dependencies have been updated, including the update to CXF 2.5.1. See also DOSGI-96.
 
@@ -365,7 +365,7 @@
 * [DOSGI-43] - ClassCastException with Declarative Services
 * [DOSGI-44] - Existing OSGi Services are not remoted when CXF-DOSGi is started
 * [DOSGI-50] - Need to automatically infer SOAP/HTTP transport intents if not
-             explicily set via osgi.remote.requires.intents
+               explicitly set via osgi.remote.requires.intents
 * [DOSGI-54] - RemoteServiceAdmin interfaces/classes out of sync with official version
 * [DOSGI-61] - The Zookeeper Discovery only supports primitive types as service properties
 * [DOSGI-62] - The DSW creates endpoints with localhost URLs
diff --git a/samples/rest/impl/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/TaskResourceImpl.java b/samples/rest/impl/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/TaskResourceImpl.java
index e8c3e92..52a6afe 100644
--- a/samples/rest/impl/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/TaskResourceImpl.java
+++ b/samples/rest/impl/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/TaskResourceImpl.java
@@ -90,7 +90,7 @@
 
     private Swagger2Feature createSwaggerFeature() {
         Swagger2Feature swagger = new Swagger2Feature();
-        swagger.setDescription("Sample jaxrs application to organize taks");
+        swagger.setDescription("Sample jaxrs application to organize tasks");
         swagger.setTitle("Tasks sample");
         swagger.setUsePathBasedConfig(true); // Necessary for OSGi
         // swagger.setScan(false); // Must be set for cxf < 3.2.x
diff --git a/samples/ssl/README.md b/samples/ssl/README.md
index 056c2df..fe83e4b 100644
--- a/samples/ssl/README.md
+++ b/samples/ssl/README.md
@@ -30,7 +30,7 @@
 keytool -importcert -storepass password -keystore etc/keystores/client.jks -alias serverKey -file server.cert
 ```
 
-- Copy thes files in etc to the karaf etc dir
+- Copy these files in etc to the karaf etc dir
 - Copy the keystores (*.jks) into the karaf etc directory.
 
 ## Installation
