diff --git a/include/client/open.inc.php b/include/client/open.inc.php
index 4024579a83c5d5ee1ff574a8b76241178585d38b..ea0a100e7f67eeab48c0d1e61df43e14eda47f28 100644
--- a/include/client/open.inc.php
+++ b/include/client/open.inc.php
@@ -10,8 +10,12 @@ if($thisclient && $thisclient->isValid()) {
 $info=($_POST && $errors)?Format::htmlchars($_POST):$info;
 
 $form = null;
-if (!$info['topicId'])
-    $info['topicId'] = $cfg->getDefaultTopicId();
+if (!$info['topicId']) {
+    if (array_key_exists('topicId',$_GET) && preg_match('/^\d+$/',$_GET['topicId']) && Topic::lookup($_GET['topicId']))
+        $info['topicId'] = intval($_GET['topicId']);
+    else
+        $info['topicId'] = $cfg->getDefaultTopicId();
+}
 
 if ($info['topicId'] && ($topic=Topic::lookup($info['topicId']))) {
     $form = $topic->getForm();