diff --git a/briar-android/src/org/briarproject/android/AppModule.java b/briar-android/src/org/briarproject/android/AppModule.java
index 22d59c206cced7be93fcdc15a98c8519cf0b7b11..0b5b031b92f9ed23e4293f214ab0ebb250364c8a 100644
--- a/briar-android/src/org/briarproject/android/AppModule.java
+++ b/briar-android/src/org/briarproject/android/AppModule.java
@@ -24,6 +24,8 @@ import dagger.Module;
 import dagger.Provides;
 
 import static android.content.Context.MODE_PRIVATE;
+import static org.briarproject.api.reporting.ReportingConstants.DEV_ONION_ADDRESS;
+import static org.briarproject.api.reporting.ReportingConstants.DEV_PUBLIC_KEY_HEX;
 
 @Module
 public class AppModule {
@@ -97,36 +99,22 @@ public class AppModule {
 
 	@Provides
 	@Singleton
-	public DevConfig provideDevConfig(CryptoComponent crypto) {
-		final PublicKey pub;
-		try {
-			// TODO fill in
-			pub = crypto.getMessageKeyParser()
-					.parsePublicKey(StringUtils.fromHexString(""));
-		} catch (GeneralSecurityException e) {
-			throw new RuntimeException(e);
-		}
-
+	public DevConfig provideDevConfig(final CryptoComponent crypto) {
 		return new DevConfig() {
 
-			private final PublicKey DEV_PUB_KEY = pub;
-			// TODO fill in
-			private final String DEV_ONION = "";
-			private final int DEV_REPORT_PORT = 8080;
-
 			@Override
 			public PublicKey getDevPublicKey() {
-				return DEV_PUB_KEY;
+				try {
+					return crypto.getMessageKeyParser().parsePublicKey(
+							StringUtils.fromHexString(DEV_PUBLIC_KEY_HEX));
+				} catch (GeneralSecurityException e) {
+					throw new RuntimeException(e);
+				}
 			}
 
 			@Override
 			public String getDevOnionAddress() {
-				return DEV_ONION;
-			}
-
-			@Override
-			public int getDevReportPort() {
-				return DEV_REPORT_PORT;
+				return DEV_ONION_ADDRESS;
 			}
 		};
 	}
diff --git a/briar-api/src/org/briarproject/api/reporting/DevConfig.java b/briar-api/src/org/briarproject/api/reporting/DevConfig.java
index f82e8131804943dbdd00fdada5360eef1bad2166..b6f4ccbf898a8795e95cd8d93065ad317ab026cc 100644
--- a/briar-api/src/org/briarproject/api/reporting/DevConfig.java
+++ b/briar-api/src/org/briarproject/api/reporting/DevConfig.java
@@ -7,6 +7,4 @@ public interface DevConfig {
 	PublicKey getDevPublicKey();
 
 	String getDevOnionAddress();
-
-	int getDevReportPort();
 }
diff --git a/briar-api/src/org/briarproject/api/reporting/ReportingConstants.java b/briar-api/src/org/briarproject/api/reporting/ReportingConstants.java
new file mode 100644
index 0000000000000000000000000000000000000000..f1d69a1a1981430e0e23b3934a60168eb858285f
--- /dev/null
+++ b/briar-api/src/org/briarproject/api/reporting/ReportingConstants.java
@@ -0,0 +1,25 @@
+package org.briarproject.api.reporting;
+
+public interface ReportingConstants {
+
+	/**
+	 * Public key for reporting crashes and feedback to the developers. This
+	 * is an ECIES key on the brainpoolp512r1 curve, encoded in SEC 1 format
+	 * without point compression.
+	 */
+	String DEV_PUBLIC_KEY_HEX =
+			"0457AD1619FBD433D5E13D5560697054"
+					+ "6E8FC5F4EF83A8C18718E8BF59BB601F"
+					+ "E20CCB233F06714A1BED370141A04C81"
+					+ "808CF2EE95C7323CDEE5999670BD1174"
+					+ "1F65ED691F355518E1A7E5E54BDDCA4C"
+					+ "B86BD8DB8842BBFD706EBD9708DB8C04"
+					+ "4FF006F215D83A66B3AEBAD674C4C1C4"
+					+ "218121A38FA1FDD4A51E77588D90BD9652";
+
+	/**
+	 * Hidden service address for reporting crashes and feedback to the
+	 * developers. TODO: Replace this with a real address.
+	 */
+	String DEV_ONION_ADDRESS = "aaaaaaaaaaaaaaaa.onion";
+}
diff --git a/briar-core/src/org/briarproject/reporting/DevReporterImpl.java b/briar-core/src/org/briarproject/reporting/DevReporterImpl.java
index d34bbeeeffe577125fba20749b282b33dcc787ed..192f10beec4e0f3e6ae5a6d08bb57d2c0fb096cd 100644
--- a/briar-core/src/org/briarproject/reporting/DevReporterImpl.java
+++ b/briar-core/src/org/briarproject/reporting/DevReporterImpl.java
@@ -22,7 +22,6 @@ import java.net.Socket;
 import java.net.SocketException;
 import java.net.UnknownHostException;
 import java.nio.charset.Charset;
-import java.util.Date;
 import java.util.List;
 import java.util.logging.Logger;
 
@@ -33,7 +32,7 @@ class DevReporterImpl implements DevReporter {
 	private static final Logger LOG =
 			Logger.getLogger(DevReporterImpl.class.getName());
 
-	private static final int TIMEOUT = 30 * 1000; // 30 seconds
+	private static final int SOCKET_TIMEOUT = 30 * 1000; // 30 seconds
 	private static final String PREFIX = "briar-";
 	private static final String REPORT_EXT = ".report";
 	private static final String CRLF = "\r\n";
@@ -46,13 +45,12 @@ class DevReporterImpl implements DevReporter {
 		this.devConfig = devConfig;
 	}
 
-	private Socket connectToDevelopers(int socksPort, int devPort)
+	private Socket connectToDevelopers(int socksPort)
 			throws UnknownHostException, SocksException, SocketException {
 		Socks5Proxy proxy = new Socks5Proxy("127.0.0.1", socksPort);
 		proxy.resolveAddrLocally(false);
-		Socket s =
-				new SocksSocket(proxy, devConfig.getDevOnionAddress(), devPort);
-		s.setSoTimeout(TIMEOUT);
+		Socket s = new SocksSocket(proxy, devConfig.getDevOnionAddress(), 80);
+		s.setSoTimeout(SOCKET_TIMEOUT);
 		return s;
 	}
 
@@ -63,7 +61,7 @@ class DevReporterImpl implements DevReporter {
 				crypto.encryptToKey(devConfig.getDevPublicKey(),
 						StringUtils.toUtf8(crashReport));
 
-		String filename = PREFIX + new Date().getTime() + REPORT_EXT;
+		String filename = PREFIX + System.currentTimeMillis() + REPORT_EXT;
 		File report = new File(crashReportDir, filename);
 		PrintWriter writer = null;
 		try {
@@ -83,14 +81,13 @@ class DevReporterImpl implements DevReporter {
 		if (reports == null || reports.length == 0)
 			return; // No crash reports to send
 
-		LOG.info("Connecting to developers' Hidden Service");
+		LOG.info("Connecting to developers");
 		Socket s;
 		try {
-			s = connectToDevelopers(socksPort,
-					devConfig.getDevReportPort());
+			s = connectToDevelopers(socksPort);
 		} catch (IOException e) {
 			if (LOG.isLoggable(WARNING))
-				LOG.log(WARNING, "Tor SOCKS proxy failed", e);
+				LOG.log(WARNING, "Could not connect to developers", e);
 			return;
 		}
 
@@ -109,9 +106,9 @@ class DevReporterImpl implements DevReporter {
 					writer.append(line).append(CRLF);
 				}
 				writer.append(CRLF);
+				writer.flush();
 				f.delete();
 			}
-			writer.flush();
 			LOG.info("Crash reports sent");
 		} catch (IOException e) {
 			if (LOG.isLoggable(WARNING))