diff --git a/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonContainerFactory.java b/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonContainerFactory.java
index 60321ba..a508c53 100644
--- a/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonContainerFactory.java
+++ b/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonContainerFactory.java
@@ -58,7 +58,11 @@
 
     @Override
     public Service getService(ServiceConfig config) throws Exception {
-        // TODO get existing service
+        GetAppsResponse existing = marathonClient.getApps(
+                Collections.singletonMap("label", SERVICE_NAME + "==" + config.getServiceName()));
+        if (existing.getApps().size() > 0) {
+            return createServiceFromExistingApp(existing.getApps(), config);
+        }
 
         App app = new App();
         app.setId(config.getServiceName());
@@ -110,6 +114,14 @@
         return createServiceFromApp(res, config);
     }
 
+    private Service createServiceFromExistingApp(List<App> apps, ServiceConfig config) {
+        if (apps.size() != 1)
+            throw new IllegalStateException("More than one existing app found for service " +
+                    config.getServiceName() + " " + apps);
+
+        return createServiceFromApp(apps.get(0), config);
+    }
+
     private Service createServiceFromApp(App app, ServiceConfig cfg) {
         // TODO make this check more thorough
         if (!cfg.getServiceName().equals(app.getLabels().get(SERVICE_NAME)))
