diff --git a/src/conf-file-processor.cpp b/src/conf-file-processor.cpp
index b9ab454..33ae4a0 100644
--- a/src/conf-file-processor.cpp
+++ b/src/conf-file-processor.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  The University of Memphis,
+ * Copyright (c) 2014-2023,  The University of Memphis,
  *                           Regents of the University of California,
  *                           Arizona Board of Regents.
  *
@@ -212,6 +212,38 @@
 bool
 ConfFileProcessor::processConfSectionGeneral(const ConfigSection& section)
 {
+  // sync-protocol
+  std::string syncProtocol = section.get<std::string>("sync-protocol", "psync");
+  if (syncProtocol == "chronosync") {
+#ifdef HAVE_CHRONOSYNC
+    m_confParam.setSyncProtocol(SyncProtocol::CHRONOSYNC);
+#else
+    std::cerr << "NLSR was compiled without ChronoSync support!\n";
+    return false;
+#endif
+  }
+  else if (syncProtocol == "psync") {
+#ifdef HAVE_PSYNC
+    m_confParam.setSyncProtocol(SyncProtocol::PSYNC);
+#else
+    std::cerr << "NLSR was compiled without PSync support!\n";
+    return false;
+#endif
+  }
+  else if (syncProtocol == "svs") {
+#ifdef HAVE_SVS
+    m_confParam.setSyncProtocol(SyncProtocol::SVS);
+#else
+    std::cerr << "NLSR was compiled without SVS support!\n";
+    return false;
+#endif
+  }
+  else {
+    std::cerr << "Sync protocol '" << syncProtocol << "' is not supported!\n"
+              << "Use 'chronosync' or 'psync' or 'svs'\n";
+    return false;
+  }
+
   try {
     std::string network = section.get<std::string>("network");
     std::string site = section.get<std::string>("site");
@@ -283,38 +315,6 @@
     return false;
   }
 
-  // sync-protocol
-  std::string syncProtocol = section.get<std::string>("sync-protocol", "psync");
-  if (syncProtocol == "chronosync") {
-#ifdef HAVE_CHRONOSYNC
-    m_confParam.setSyncProtocol(SyncProtocol::CHRONOSYNC);
-#else
-    std::cerr << "NLSR was compiled without ChronoSync support!\n";
-    return false;
-#endif
-  }
-  else if (syncProtocol == "psync") {
-#ifdef HAVE_PSYNC
-    m_confParam.setSyncProtocol(SyncProtocol::PSYNC);
-#else
-    std::cerr << "NLSR was compiled without PSync support!\n";
-    return false;
-#endif
-  }
-  else if (syncProtocol == "svs") {
-#ifdef HAVE_SVS
-    m_confParam.setSyncProtocol(SyncProtocol::SVS);
-#else
-    std::cerr << "NLSR was compiled without SVS support!\n";
-    return false;
-#endif
-  }
-  else {
-    std::cerr << "Sync protocol '" << syncProtocol << "' is not supported!\n"
-              << "Use 'chronosync' or 'psync' or 'svs'\n";
-    return false;
-  }
-
   // sync-interest-lifetime
   uint32_t syncInterestLifetime = section.get<uint32_t>("sync-interest-lifetime",
                                                         SYNC_INTEREST_LIFETIME_DEFAULT);
diff --git a/src/conf-parameter.cpp b/src/conf-parameter.cpp
index d1c6412..81c92ca 100644
--- a/src/conf-parameter.cpp
+++ b/src/conf-parameter.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  The University of Memphis,
+ * Copyright (c) 2014-2023,  The University of Memphis,
  *                           Regents of the University of California
  *
  * This file is part of NLSR (Named-data Link State Routing).
@@ -96,7 +96,9 @@
 {
   m_network = networkName;
 
-  m_syncPrefix.append("localhop");
+  if (m_syncProtocol != SyncProtocol::SVS) {
+    m_syncPrefix.append("localhop");
+  }
   m_syncPrefix.append(m_network);
   m_syncPrefix.append("nlsr");
   m_syncPrefix.append("sync");
