diff --git a/buildroot/share/git/mfinfo b/buildroot/share/git/mfinfo
index 533b30a56ae763f47019b776cd2d495d22465308..84b067caebda869f19837e5ebf242015aa66fb12 100755
--- a/buildroot/share/git/mfinfo
+++ b/buildroot/share/git/mfinfo
@@ -37,4 +37,8 @@ case "$#" in
   * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;;
 esac
 
+if [[ $BRANCH == "(no" ]]; then
+  echo "Git is busy with merge, rebase, etc." 1>&2 ; exit 1
+fi
+
 echo "$ORG $FORK $REPO $TARG $BRANCH"
diff --git a/buildroot/share/git/mfinit b/buildroot/share/git/mfinit
index 5e2cbc0d88e2931322aae42a4ccafab45bdf89d4..2a379146017fc374e8c17bcf96dcaa53f2d19c7b 100755
--- a/buildroot/share/git/mfinit
+++ b/buildroot/share/git/mfinit
@@ -2,7 +2,15 @@
 #
 # mfinit
 #
-# Create the upstream repository for Marlin
+# Create the upstream remote for a forked repository
 #
 
-git remote add upstream git@github.com:MarlinFirmware/Marlin.git
+REPO=$(git remote get-url origin 2>/dev/null | sed -E 's/.*\/(.*)\.git/\1/')
+
+if [[ -z $REPO ]]; then
+  echo "`basename $0`: No 'origin' remote found." 1>&2 ; exit 1
+fi
+
+git remote add upstream "git@github.com:MarlinFirmware/$REPO.git"
+
+git fetch upstream
\ No newline at end of file
diff --git a/buildroot/share/git/mfnew b/buildroot/share/git/mfnew
index 0a07513bf97102d2ce14ff4dde52d9e964a0b42f..7f3d7876c01cea2de16b8e8907984dbe2a285f3d 100755
--- a/buildroot/share/git/mfnew
+++ b/buildroot/share/git/mfnew
@@ -2,20 +2,15 @@
 #
 # mfnew
 #
-# Create a new branch based on RCBugFix or dev a given branch name
+# Create a new branch from the default target with the given name
 #
 
 MFINFO=$(mfinfo) || exit
 IFS=' ' read -a INFO <<< "$MFINFO"
 TARG=${INFO[3]}
 
-if [[ ${INFO[4]} == "(no" ]]; then
-  echo "Branch is unavailable!"
-  exit 1
-fi
-
 case "$#" in
-  0 ) BRANCH=pr_for_$TARG-$(date +"%G-%d-%m|%H:%M:%S") ;;
+  0 ) BRANCH=pr_for_$TARG-$(date +"%G-%m-%d_%H.%M.%S") ;;
   1 ) BRANCH=$1 ;;
   * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;;
 esac
diff --git a/buildroot/share/git/mfpr b/buildroot/share/git/mfpr
index 8eff48483ac54af7d310b951014fc159d8e0c0a6..eb2e102aed68a421fdb5cc74972807ba87904915 100755
--- a/buildroot/share/git/mfpr
+++ b/buildroot/share/git/mfpr
@@ -15,11 +15,6 @@ REPO=${INFO[2]}
 TARG=${INFO[3]}
 BRANCH=${INFO[4]}
 
-if [[ $BRANCH == "(no" ]]; then
-  echo "Git is busy with merge, rebase, etc."
-  exit 1
-fi
-
 if [[ ! -z "$1" ]]; then { BRANCH=$1 ; git checkout $1 || exit 1; } fi
 
 if [[ $BRANCH == $TARG ]]; then
diff --git a/buildroot/share/git/mfrb b/buildroot/share/git/mfrb
index c1366f7f98dfdba48dc6a9a52f3a75c6aaba2947..b0b700868049023a589f8fde61b2bc2845939347 100755
--- a/buildroot/share/git/mfrb
+++ b/buildroot/share/git/mfrb
@@ -8,11 +8,6 @@
 MFINFO=$(mfinfo) || exit
 IFS=' ' read -a INFO <<< "$MFINFO"
 
-if [[ ${INFO[4]} == "(no" ]]; then
-  echo "Branch is unavailable!"
-  exit 1
-fi
-
 case "$#" in
   0 ) ;;
   * ) echo "Usage: `basename $0`" 1>&2 ; exit 1 ;;
diff --git a/buildroot/share/git/mfup b/buildroot/share/git/mfup
index ff19e0e1c0347bd95c6ed673ee9a1a24b1624615..8d339c0685ee005a73829f73961415ff50ccb36d 100755
--- a/buildroot/share/git/mfup
+++ b/buildroot/share/git/mfup
@@ -15,11 +15,6 @@ REPO=${INFO[2]}
 TARG=${INFO[3]}
 OLDBRANCH=${INFO[4]}
 
-if [[ $OLDBRANCH == "(no" ]]; then
-  echo "Branch is unavailable!"
-  exit 1
-fi
-
 case "$#" in
   0 ) BRANCH=$OLDBRANCH ;;
   1 ) BRANCH=$1 ;;